Validation 货币验证sholdn';t不允许零或数字以零开头

Validation 货币验证sholdn';t不允许零或数字以零开头,validation,Validation,我已经为货币编写了一个正则表达式,它不应该接受0或一个以0开头的数字 /^\$?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2}){0,1}$/ 但它仍然接受0,数字以0开头。一般来说,将负数与正则表达式匹配不是最容易的事情。一个可能会使代码更具可读性的选项是使用多个正则表达式,例如,第一个正则表达式 if (not /^\$0/) if (/whatever else you do want it to match/) // whatever 我想你

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

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

但它仍然接受0,数字以0开头。

一般来说,将负数与正则表达式匹配不是最容易的事情。一个可能会使代码更具可读性的选项是使用多个正则表达式,例如,第一个正则表达式

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

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


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

非常感谢您的回答。我期待着您给出的建议。