我试图构建一个正则表达式排除kommas和点在输入(仅数字)。我在一个运行Angular2的Ionic 2应用程序中这样做,所以我使用了Angular 2 Validators.pattern。 我会假装正则表达式引擎是JavaScript的一个。正则表达式排除komma和点
我看了一些帖子的正则表达式,并喜欢它,如果你输入1,2
但它不工作1,
触发建立这种模式[^,.]+
这工作得很好。
1,
仍然有效,但我希望它是无效的,就像1,2。那么我该如何修改我的模式才能获取x,x
,x.x
也作为x,
和x.
?
很抱歉,如果这个问题有点愚蠢的,但我从来没有使用正则表达式模式befor并试图为3或4个小时,我投降后...
将是巨大的,如果你们中的一些可以帮助我得到这个正则表达式加工。
编辑:
在我的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,而不是exluding,其作品像它应该,[^1]+
在我的HTML文件
<ion-item class="listElement" [formGroup]="_formValidator">
<ion-input [(ngModel)]="_result.value" type="number" placeholder="Enter Something" formControlName="inputValidatorInteger"></ion-input>
</ion-item>
EDIT 2尝一尝。那是因为我需要数字键盘才能在智能手机上打开,并且type =“number”。 正则表达式似乎不适用于type =“number”,或者说它不能很好地工作。
只是测试 - 加上'^'和'$'锚:'^[^,。] + $'' –
你的意思是*抓取'x,x','xx'也可以作为'x,'和'x.' * –
你的模式应该可以工作,看[这里]( http://plnkr.co/edit/VKuGMI33OkSmvqnEqnCU?p=preview)。 –