货币验证sholdn&t;允许零或数字从零开始

时间:2015-01-08 10:46:47

标签: validation

我为货币编写了一个正则表达式,它不应该接受0或者数字以0开头

/^\$?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2}){0,1}$/

但它仍然接受0,数字从0开始。

2 个答案:

答案 0 :(得分:0)

通常,将负片与正则表达式匹配并不是最简单的事情。一个可能使您的代码更易于阅读的选项是使用多个正则表达式,例如,第一个

if (not /^\$0/)
  if (/whatever else you do want it to match/)
    // whatever

答案 1 :(得分:0)

我想你想要/^\$?(?:[1-9][0-9]*|[1-9][0-9]{0,2}(?:,[0-9]{3})*)(?:\.[0-9]{2})?$/。不确定这是否正是您所需要的,但主要的一点是将[1-9]与前导数字相匹配。

编辑:不允许$.99,但您的示例并非如此,因此不确定您是否需要。