Angular 需要角度指令——文本框中的数字和/或两位小数
我只想在文本框中输入数字。一个数字或两个小数的数字。 例如,Angular 需要角度指令——文本框中的数字和/或两位小数,angular,Angular,我只想在文本框中输入数字。一个数字或两个小数的数字。 例如,12345或1234.56 我在网上找到了一些代码,但现在找不到资源。那只对一个数字有效,但对两个小数无效。我想修改代码。给你 currencyChars = new RegExp('[\.,]', 'g'); // we're going to remove commas and dots constructor(public element: ElementRef, public renderer: Renderer2, priv
12345
或1234.56
我在网上找到了一些代码,但现在找不到资源。那只对一个数字有效,但对两个小数无效。我想修改代码。给你
currencyChars = new RegExp('[\.,]', 'g'); // we're going to remove commas and dots
constructor(public element: ElementRef, public renderer: Renderer2, private decimalPipe:
DecimalPipe) {}
ngOnInit() {
this.format(this.element.nativeElement.value);
}
@HostListener('input', ["$event.target.value"]) onInput(e: string) {
this.format(e);
}
format(val: string) {
const numberFormat = parseInt(String(val).replace(this.currencyChars, ''));
const usdollar = this.decimalPipe.transform(numberFormat, '1.0', 'en-US');
this.render.setProperty(this.element.nativeElement, 'value', usdollar);
}
我想我必须改变格式方法。请提供帮助。能否尝试将参数更改为十进制管道
...
const usdollar = this.decimalPipe.transform(numberFormat, '1.1-2', 'en-US');
...
能否尝试将参数更改为十进制管道
...
const usdollar = this.decimalPipe.transform(numberFormat, '1.1-2', 'en-US');
...
从
我们可以改进指令以考虑小数
我们得到改变@Input的可能小数
decimales: string = "";
@Input()
set mask(value: string) {
const i = value.indexOf("d{0,");
if (i > 0) {
const decimales = +value.substr(i + 4, 1);
this.decimales = "000000000".substr(0, decimales);
}
this.regExpr = new RegExp(value);
}
我们添加了一个@HostListener模糊
@HostListener("blur", ["$event"])
blur($event) {
if (this.decimales) {
let item = $event.target;
let values = item.value.split(".");
let value =
values.length > 1
? values[0] + "." + (values[1] + this.decimales).substr(0, this.decimales.length)
: values[0] + "."+this.decimales;
this.control.control.setValue(value, { emit: false });
}
}
注意:代码仍然按“原样”提供,不提供任何形式的担保
我们可以改进指令以考虑小数
我们得到改变@Input的可能小数
decimales: string = "";
@Input()
set mask(value: string) {
const i = value.indexOf("d{0,");
if (i > 0) {
const decimales = +value.substr(i + 4, 1);
this.decimales = "000000000".substr(0, decimales);
}
this.regExpr = new RegExp(value);
}
我们添加了一个@HostListener模糊
@HostListener("blur", ["$event"])
blur($event) {
if (this.decimales) {
let item = $event.target;
let values = item.value.split(".");
let value =
values.length > 1
? values[0] + "." + (values[1] + this.decimales).substr(0, this.decimales.length)
: values[0] + "."+this.decimales;
this.control.control.setValue(value, { emit: false });
}
}
注:代码按“原样”提供,不提供任何形式的担保需要多少小数点?需要多少小数点?