正则表达式 - 值不等于0,00

时间:2012-07-04 16:21:26

标签: javascript regex dojo

我有一个正则表达式来验证输入值。

此时我有:

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

它正常工作,但现在我需要添加一个验证来查看该值是否为0,00

输入是金额值。 可能的值:

12,31
1.234,56
1.234.567,89

不可能的值:

0,00

我需要在dijit.form.ValidationTextBox中使用它。 类似的东西:

dijit.byId(nameID).regExp = "([0-9]{0,3}[.]?)*[0-9]{1,3},[0-9]*|[0-9]";

1 个答案:

答案 0 :(得分:1)

我认为你必须完全重新考虑你的regurlar表达,因为它会测试真正的字符串,如“1.23.4,56”和“0”,但我认为这不是你想要的。

尝试这样的事情:

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

使用RegExr测试您的正则表达式,但请记住,Javascript不支持所有最完整的正则表达式引擎的功能。事实上,它很糟糕。

更多说明:

  1. 请勿使用令牌[.]来匹配点。这很慢。只是逃避点:\.
  2. 您可以简单地使用\d代替[0-9],也可以在方括号中使用它:[a-f\d\-]表示所有十六进制整数字符。