正则表达式:仅限数字(无空格或特殊字符),使用ng-pattern

3

我有一个输入框,只有包含数字而没有特殊字符和空格才算有效。我使用 angular 的 ng-pattern 进行验证。

我尝试使用以下代码:

/^\d+$/

/^\d*$/

/^[0-9]+$/

这些正则表达式可以防止特殊字符和字母,但对空格无效。是否有人知道一种将空格视为无效字符的正则表达式?我试图避免使用keyCode来阻止输入。

如果已经有这方面的主题帖子,请谅解我的重复提问。我找到了许多类似的帖子,但没有一个对空格有所帮助。

编辑: 即使正则表达式通常应该防止空格,在使用ng-pattern时它也似乎不起作用:

<input type="tel" maxlength="10" ng-pattern="/^[0-9]+$/" placeholder="(1234567890)" />

如果我输入一个空格,输入框仍会返回ng-valid-pattern类。

你的正则表达式不允许空格。请参见https://regex101.com/r/nM1lY8/1 - PM 77-1
2
http://jsfiddle.net/ExpertSystem/63mwL/ - Anik Islam Abhi
你解决了这个问题吗?我也在处理类似的问题,我猜是因为Angular的ng-pattern在输入前面有空格时没有返回false。我已经设置了ng-pattern="/^\+?[0-9]{6,29}$/",但即使我以空格开头输入,它仍然显示为有效。 - ghoulfolk
2个回答

3
这个语法应该是可用的:/^\d+$/。

-1

它通过了一个完全空的字符串。 - Curious96

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接