Angular 2:使用Regex进行数字验证

时间:2017-05-31 20:24:33

标签: javascript regex angular validation

我正在尝试验证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的新手,需要建议。

2 个答案:

答案 0 :(得分:0)

keypress更改为blur。这样,当控件失去焦点时,它将运行验证。

答案 1 :(得分:0)

有一个很棒的库text-mask。您可以轻松创建掩码并限制用户输入3位数和5位小数。

mask = [/\d/, /\d/,/\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/]