我正在使用正则表达式来验证angularjs中的数字。但是我的代码在数字超过9位时显示验证错误。有人可以帮我纠正我的代码,以便输入任何数字。
我试过的是:
ng-pattern="/^\d{0,9}?$/"
答案 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