如何在角度5中限制输入字段的特殊字符和字母

时间:2018-08-30 19:35:34

标签: validation input pattern-matching angular5

我正在尝试将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)]));

我如何才能实现正确的正则表达式模式并限制用户输入,当前解决方案无法正常工作...谢谢您的建议和想法。

1 个答案:

答案 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(.)