正则表达式用于字母数字字符串中的数字计数

时间:2015-03-03 10:47:33

标签: javascript regex

如何验证来自正则表达式的以下逻辑

  • 允许美元($),逗号(,),十进制(。)和数字(0-9)
  • 在十进制之前只能有8位数,而不管$和逗号
  • 小数点后的2位数

允许的字符串示例:

  • 99999999.99
  • $ 99999999.99
  • $ 9,999,9999.99
  • $ 9999,99,99.99

不允许:   - $ 999999999.99(十进制前9位数)   - $ 99,99,999,99.99

意思是我想在十进制之前限制数字的数量。 我怎样才能做到这一点。在此先感谢

2 个答案:

答案 0 :(得分:3)

/^(\$?(\,?\d){1,8}\.\d{2}$)/gm

Regex Demo

答案 1 :(得分:2)

您可以使用此正则表达式:

/^\$?(?:,?\d){1,8}(?:\.\d{1,2})?$/gm

RegEx Demo

<强>解释

^              # Line start
\$?            # match optional $ at start
(?:,?\d)       # Match an optional comma followed by a digit and use non-capturing group
{1,8}          # up to 8 occurrence of previous group
(?:\.\d{1,2})? # followed by optional decimal point and 1 or 2 digits
$              # line end