用小数点和千位分隔符的正则表达式

我需要使用正则表达式来验证可能包含千位分隔符或使用javascript的小数的数字。 最大值为9,999,999.99最小值0.01其他有效值: 11,111 11.1 1,111.11

无效值: 1111 1111,11 ,111 111,

我已经无所顾忌地搜遍了。


/^d{1,3}(,d{3})*(.d+)?$/

关于最小值和最大值...呃,我不会用正则表达式来做,但是你可以在开头添加lookahead:

/^(?!0+.00)(?=.{1,9}(.|$))d{1,3}(,d{3})*(.d+)?$/

注意:这允许0,999.00 ,所以您可能想要将其更改为:

/^(?!0+.00)(?=.{1,9}(.|$))(?!0(?!.))d{1,3}(,d{3})*(.d+)?$/

这将不允许领先0。

编辑:
测试:http://jsfiddle.net/pKsYq/2/


((d){1,3})+([,][d]{3})*([.](d)*)?

它只适用于一些,但我仍然在学习正则表达式。

逻辑应该是1-3位数字0-1次,1个逗号后跟3位数字的任意次数,以及一个单数。 随后是任意数量的数字0-1次


我已经在下面的regrex中使用了以下限制 -

^(?!0|.00)[0-9]+(,d{3})*(.[0-9]{0,2})$
  • 不允许0和.00。
  • ','(千分位数)3位数字后。
  • '' (小数到小数点后2位)。
  • 链接地址: http://www.djcxy.com/p/76779.html

    上一篇: Regex for number with decimals and thousand separator

    下一篇: Why am I seeing inconsistent JavaScript logic behavior looping with an alert() vs. without it?