我正在尝试验证IE 11中的数字字段。
<input type="number" name="amount" [(ngModel)]="amount" (keypress)="validateNum($event) />
并在打字稿中
private validateNum(event: KeyboardEvent): void {
const pattern = /^\d{1,3}[.]\d{1,6}$/g;
let inputChar = String.fromCharCode(event.charCode);
if(!pattern.test(inputChar)) {
event.preventDefault();
}
}
这里我试图将输入限制为3位和5位小数。我面临的问题是,regEx正在验证按下的每个键(按下3个数字后不验证)并且不允许输入任何数字。如何在数字达到限制后验证号码?或者是否可以在Angular2中验证没有regEx?我是Angular的新手,需要建议。
答案 0 :(得分:0)
将keypress
更改为blur
。这样,当控件失去焦点时,它将运行验证。
答案 1 :(得分:0)
有一个很棒的库text-mask。您可以轻松创建掩码并限制用户输入3位数和5位小数。
mask = [/\d/, /\d/,/\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/]