我正在尝试构建一个正则表达式来排除输入中的kommas和点(仅限数字)。我在使用Angular2的Ionic 2应用程序中执行此操作,因此我使用的是Angular 2 Validators.pattern。 我会假装正则表达式引擎是javascript之一。
我阅读了一些Regex帖子并构建了这种模式[^,.]+
如果您键入1,2
但它不适用于1,
,则此功能会触发。
1,
仍然有效,但我希望它无效,就像1,2。那么我该如何修改我的模式以获取x,x
,x.x
也为x,
和x.
?
很抱歉,如果这个问题有点愚蠢,但我从来没有使用正则表达式模式,并且尝试了3或4个小时后我投降了......
如果你们中的一些人可以帮助我让Regex工作,那会很棒。
修改
我的TS文件中的
this._formValidator = new FormGroup({
inputValidator: new FormControl('', Validators.maxLength(this._maxLength)),
inputValidatorInteger: new FormControl('', Validators.compose([
Validators.pattern('[^,.]+')
]))
});
在Valuechange上我将错误映射到正确的错误消息并显示它们。还尝试登录任何错误,但如果我键入1,
则没有。如果我输入类似1,2
的内容,即使1,,,,,
无效,也会无效。当我尝试使用例如排除1而不是排除时,它的工作应该是[^1]+
在我的HTML文件中
<ion-item class="listElement" [formGroup]="_formValidator">
<ion-input [(ngModel)]="_result.value" type="number" placeholder="Enter Something" formControlName="inputValidatorInteger"></ion-input>
</ion-item>
编辑2: 我需要用。那是因为我需要在智能手机上打开数字键盘,而键盘=“数字”。 正则表达式似乎不适用于type =“number”,或者说它不能很好地工作。