2016-08-05 76 views
4

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

我曾尝试是:

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

'\ d {0,9}?'为什么在这里使用'?' – Tushar

+0

@Tushar因为[this](http://stackoverflow.com/a/38790314/256196)? – Bohemian

回答

3

只需卸下{0,9}?和使用*代替像

/^\d*$/ 

{0,9}的意思是任何长度9

+0

你能告诉我,如果我需要验证小数点,我应该添加什么。我之前尝试的是ng-pattern =“/^\ d {0,9}(\。\ d {1,9})?$ /” – anju

+1

@anju Here:“/^[\ d] * [\ 。]?[\ d] * $ /“ – scokmen

+0

谢谢你的帮助@scokmen – anju

2

介于0和只要改变{0,9}量词与*。并取出? - 这是没用的:

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

对于十进制值:

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

你能告诉我,如果我需要验证小数点,我应该添加什么。我之前尝试的是ng-pattern =“/^\ d {0,9}(\。\ d {1,9})?$ /“ – anju

+1

我相信在你的情况下开放的量词很好:'$ \ d *(\。\ d +)?$'这些结果是一个简单的正则表达式。 –

+0

谢谢你的帮助 – anju

1

用途:

"/^\d*?$/" 

\d{0,9} =匹配0到9的数字

\d* =匹配0至N位数

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

+0

你能告诉我应该怎么做我添加,如果我还需要验证小数点。我以前尝试过像ng-pattern =“/^\ d {0,9}(\。\ d {1,9})?$ /” – anju

+0

您不当使用'*'量词时需要'?' – Tushar

3

我怀疑问题是了解的区别:

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

{0,9}意味着,在这种情况下表示“0到9的数字”,“前面的术语的零至9重复”。

[0-9]的意思是“0到9(含)范围内的字符”,与\d相同。

尝试:

/^\d+$/ 

这意味着 “所有的数字输入” 和排除空白输入。

要允许十进制输入也难逃点,使小数部分可选:

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

这意味着“至少一个数字,然后任选一个点和至少一个数字”。

+0

谢谢你的帮助。如果我还需要验证小数点,我应该加什么东西。 \。\ d {1,9})?$ /“ – anju

+0

@anju是否允许空白输入? – Bohemian

+0

不允许@波希米亚语 – anju