正则表达式验证错误

时间:2016-08-05 13:09:24

标签: angularjs regex

我正在使用正则表达式来验证angularjs中的数字。但是我的代码在数字超过9位时显示验证错误。有人可以帮我纠正我的代码,以便输入任何数字。

我试过的是:

ng-pattern="/^\d{0,9}?$/"

4 个答案:

答案 0 :(得分:3)

只需删除{0,9}?并使用*代替

/^\d*$/

{0,9} mean是0到9之间的任何长度

答案 1 :(得分:3)

我怀疑问题是理解它们之间的区别:

  • {0,9}
  • [0-9]

{0,9}表示"前一个词"的零到9次重复,在这种情况下意味着"零到9位"。

[0-9]表示"范围为0到9(含)"的字符,与\d相同。

尝试:

/^\d+$/

这意味着"所有数字输入"并排除空白输入。

要允许小数输入,请转义点并使小数部分可选:

/^\d+(\.\d+)?$/

这意味着"至少一个数字,可选地后跟一个点和至少一个数字"。

答案 2 :(得分:2)

只需使用{0,9}更改*量词。并删除? - 它没用:

ng-pattern="/^\d*$/"

对于十进制值:

ng-pattern="/^\d*(\.\d+)?$/"

答案 3 :(得分:1)

使用:

  "/^\d*?$/"

\d{0,9} =匹配0到9位

\d* =将0与N位匹配

\ d =数字:0或1或2或3或4或5或6或7或8或9