【发布时间】:2016-12-02 17:21:52
【问题描述】:
我使用正则表达式 /^[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(不应该是 true)
【问题讨论】:
-
@WiktorStribiżew 为什么它不能与 type="number" 一起使用?使用 type="text" 浏览器也可以让用户输入任意字符。
-
好吧,正则表达式使用 string 输入,正则表达式引擎不允许任何其他 type 作为输入。因此,只有
password、text通常是可以使用正则表达式的有效类型。
标签: javascript angularjs regex ng-pattern angularjs-ng-pattern