正则表达式 - 用逗号和小数表示

时间:2015-07-07 09:52:56

标签: regex

^([1-9][0-9]*|0)(\.[0-9]{2})?$

从上面的正则表达式:

  • 0.1 --->无效
  • 0.10 --->有效
  • 10 --->有效
  • 100.00 --->有效
  • -0.1 --->无效
  • -0.10 --->无效
  • -10 --->无效
  • -100.00 --->无效

现在我想将逗号添加到我的正则表达式中,如下所示:

  • 1,000.00 --->有效
  • 10,000.00 --->有效
  • 100,000.00 --->有效
  • 1,000,000.00 --->有效
  • -1,000.00 --->无效

我应该如何纠正我的正则表达式?

1 个答案:

答案 0 :(得分:3)

在正则表达式中,您需要更改

[1-9][0-9]*

代表“从非零开始的一个或多个数字”到

[1-9][0-9]{0,2}(,[0-9]{3})*

代表“从非零[1-9][0-9]{0,2}开始的一到三位数字,后跟任意数量的每组有三位数的组(,[0-9]{3})*”。

结果正则表达式为:

^([1-9][0-9]{0,2}(,[0-9]{3})*|0)(\.[0-9]{2})?$