angular - 在 Angular 9 中的输入字段上创建数字格式化程序
问题描述
您好,我正在尝试在输入字段上创建数字格式化程序。
当我输入数字时效果很好,但是当我输入其他字符时,NgModel 似乎不关心我的更改,一旦我再次输入数字,所有非数字字符都会再次消失。有人可以帮我吗?
想要的行为 -> 输入:“dawdhawdhwa”,输出:“0kr”
输入:“50000”,输出:“50 000 kr”
输入:“5219319231”,输出:“5 219 319 231 kr”
输入:“dawh2133kdaw5”,输出:“21 335 kr”
源代码:
import { Component, Input, PipeTransform, Pipe } from '@angular/core';
@Pipe({
name: 'numberFormat'
})
export class NumberFormatPipe implements PipeTransform {
transform(value: any, args?: string[]): any {
if(!value) {
value = "0";
}
value = value.replace(/[^0-9.]/g, "");
return parseFloat(value as string).toLocaleString('sv') + (args ? args[0] : "");
}
}
@Component({
selector: 'app-input',
template: `
<div >
<input
[ngModel]="value | numberFormat: [' kr']"
(ngModelChange)="value = $event"
type="text"
/>
</div>
`,
})
export class InputComponent {
value: string
constructor() {
}
ngOnInit(): void {
}
}
解决方案
推荐阅读
- eclipse - Quicklisp 的文件 setup.lisp 没有正确加载
- sql - 加入没有相等字段的表
- android - 按下运行按钮后如何禁用 Android Studio 网络活动
- dart - 颤振 | 搜索委托 | 在搜索中,我必须在得到响应后制作 API,我已经构建了一个小部件
- excel - 当外部工作簿关闭时,外部工作簿的 SUMIF 会给出 #VALUE。SUMPRODUCT 给出零结果
- vb.net - 为什么主应用程序线程最快?
- sql - SQL Count Distinct IDs with condition
- javascript - 如何在 Vue 中创建服务并使用所有 this.$t、this.$alertify 等
- javascript - 在表格中点击和编辑按钮后,如何使表格中的一个单元格“内容可编辑”
- ruby-on-rails - 无法从数据库返回所需的结果