我有一个数字类型的输入,我想确保它只接受一个数字。我可以在服务器端很好地做到这一点,但是使用 AngularJS 我无法让它工作。
这是代码:
<input type="number" ng-pattern="/[0-9]+/" name="numOfFruits" ng-model="basket.numOfFruits" />
我怀疑这与我提供的模式有关
[0-9]+
基本上我只想要这个文本框中的数字,任何不是由数字 0 到 9 组成的,我都希望输入无效。目前,我的输入字段看到这个
aa23423
作为有效输入!
最佳答案
您需要使用 anchor :
/^[0-9]+$/
^
: 行首 anchor 。 [0-9]+
0
之间的一个或多个数字和 9
. $
: 行尾 anchor 。 因此,它匹配字符串的开头,然后匹配一个或多个数字,然后查找字符串的结尾,因此它匹配只包含数字而没有其他内容的字符串。
否则,
/[0-9]+/
将仅匹配 aa23423
的一部分,更准确的数字23423
因此会给你有效。
关于regex - 使用 AngularJS 和 Pattern/RegEx 验证 <input type ="number"/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124302/