Validation 如何限制angular 5中输入字段的特殊字符和字母

Validation 如何限制angular 5中输入字段的特殊字符和字母,validation,input,pattern-matching,angular5,Validation,Input,Pattern Matching,Angular5,我试图在Angular 5中向输入字段添加一个输入限制模式,以便用户只能输入以下内容(1234567890-) 然后在构造函数中: this.name = new FormControl("", Validators.compose([Validators.required, Validators.pattern(this.nameFormat)])); 如何实现正确的正则表达式模式并限制用户输入,当前的解决方案不起作用…感谢您的建议和想法。您可以通过使用键码来代替正则表达式模式 在compo

我试图在Angular 5中向输入字段添加一个输入限制模式,以便用户只能输入以下内容(1234567890-)

然后在构造函数中:

this.name = new FormControl("", Validators.compose([Validators.required, Validators.pattern(this.nameFormat)]));

如何实现正确的正则表达式模式并限制用户输入,当前的解决方案不起作用…感谢您的建议和想法。

您可以通过使用键码来代替正则表达式模式

在component.html中

 <input class="form-control" (keypress)="omit_number($event)" type="text">

组件中的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);
}
省略编号(事件){
var键;
key=event.charCode;//key=event.keyCode;(两者均可使用)
返回((键>47和键<58)| |键==45 | |键==46);
}
解释

   (key > 47 && key < 58) // allows numbers from 1 to 0
    key == 45  // allows minus(-)
    key == 46 //allows Period(.)
(key>47&&key<58)//允许从1到0的数字
键==45//允许负(-)
key==46//允许使用句点(.)

谢谢,点(.)字符怎么样?就我而言,我只限制特殊字符,而不是字母。你能告诉我怎么做吗?
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(.)