使用正则表达式/ ^ [0-9] + $ /来限制文本框的输入只接受数字。它工作正常但是当类型类似于+124时,它也没有将文本框设置为无效。
<form name="myForm" novalidate>
<input type="number" ng-model="age" name="age" ng-pattern="/^[0-9]+$/" />
<h3>Valid Status : {{myForm.age.$valid}}</h3>
</form>
输入:123输出:myForm.age。$ valid - true
输入:-123输出:myForm.age。$ valid - false
输入:+123输出:myForm.age。$ valid - true(不应该为真)
答案 0 :(得分:0)
如果您想使模式生效,则需要将type
属性设置为text
。由于您还希望允许用户在输入字段中输入仅位,请添加onkeypress
验证:
<input type="text" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57" ng-model="age" name="age" ng-pattern="/^[0-9]+$/" />
实际上,你甚至不需要ng-pattern regex。
答案 1 :(得分:-1)
你可以使用:
ng-pattern="/^[0-9]+$/"
不将输入类型设置为数字(默认为文本,它应该可以正常工作)。
这里是JSFiddle:https://jsfiddle.net/3ju3b2tu/1/