我正在尝试将Angular 5中的输入限制模式添加到输入字段,以便用户只能输入以下内容(1234567890-。)
<div class="input-group">
<input type="text" id="btn" (keyup.enter)="Submit(Car.value);" class="form-control" name="Car" #Car required placeholder="Car name" [value]="CarSearch" [pattern]="nameFormat"> </div>
在组件中: 我声明了我的模式(错误的正则表达式模式):
nameFormat = "[a-zA-Z\s]+$";
然后在构造函数中:
this.name = new FormControl("", Validators.compose([Validators.required, Validators.pattern(this.nameFormat)]));
我如何才能实现正确的正则表达式模式并限制用户输入,当前解决方案无法正常工作...谢谢您的建议和想法。
答案 0 :(得分:1)
代替使用正则表达式模式,您可以通过使用键码来实现。
在component.html
<input class="form-control" (keypress)="omit_number($event)" type="text">
在component.ts中
omit_number(event) {
var key;
key = event.charCode; // key = event.keyCode; (Both can be used)
return ((key > 47 && key < 58) || key == 45 || key == 46);
}
说明
(key > 47 && key < 58) // allows numbers from 1 to 0
key == 45 // allows minus(-)
key == 46 //allows Period(.)