【发布时间】:2018-06-21 21:19:22
【问题描述】:
我正在 Angular 中创建一个表单,该表单要求 rate 字段仅采用小数点后 2 位的数字。我的 HTML 如下:
<input type="number" class="form-control" (keypress)="_keyPress($event)" (ngModelChange)="Valuechange($event,salesorder,'Rate')" [ngModelOptions]="{standalone: true}" name="customerCode" #customerCode="ngModel" [(ngModel)]="salesorder._dto.rate" [style]="{'text-align':'right'}" />
在每个按键事件中,我都会调用_keyPress() 方法,如下所示:
_keyPress(event: any) {
const pattern = /[0-9\+\.\ ]/;
let inputChar = String.fromCharCode(event.charCode);
if (!pattern.test(inputChar)) {
// invalid character, prevent input
event.preventDefault();
}
}
上述正则表达式可以正常工作,但不会将数字限制为 2 位小数。我尝试了各种正则表达式,但无法实现对小数点后 2 位的限制。我以前做的最后一个正则表达式如下:
const pattern = /[0-9]+(.[0-9]{0,2})/;
我对正则表达式一无所知。
【问题讨论】:
标签: regex angular forms angular2-forms angular4-forms