javascript - 带小数点和千位分隔符的正则表达式

标签 javascript regex decimal

我需要正则表达式来使用 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+)?$/

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

/^(?!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/

关于javascript - 带小数点和千位分隔符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16148034/

相关文章:

python - 忽略外部分组并仅返回交替匹配的组

以特定精度将小值与零进行比较

javascript - HTMLCollection 元素的 For 循环

javascript - 正则表达式:字符串以 3 到 4 个连续的 "a"结尾

javascript - 无法读取父元素的 NodeName

java - 删除选择冲突而不向前看 - JavaCC

c - 符号大小用来表示负数吗?

java - 如何使 Integer.toBinaryString 返回至少 4 位

javascript - 正确显示 ajax 请求到 html 的结果

javascript - 使用 .split() 和 .filter() 方法从数组字符串中删除单词