javascript货币正则表达式

时间:2016-12-07 19:29:36

标签: javascript regex

我有以下正则表达式来验证输入中的数字

var reg = /^\d+$/;

现在我想在数字字段中允许,(逗号)和。(句点)如下所示,有些人会帮我写正则表达式以允许以下数字格式吗?

10000000
10,000,000
10000000.00

2 个答案:

答案 0 :(得分:2)

您可以使用

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

请参阅regex demo

如果您只需要在小数点分隔符后面加2位数,请将(?:\.\d+)?替换为(?:\.\d{1,2})?

<强>详情:

  • ^ - 字符串开头
  • (?:\d{1,3}(?:,\d{3})*|\d+) - 2个替代方案:
    • \d{1,3}(?:,\d{3})+ - 1到3位数字以及逗号和3位数字的一个或多个序列
    • \d+ - 一位或多位
  • (?:\.\d+)? - 可选序列:
    • \. - 一个点
    • \d+ - 一位或多位
  • $

答案 1 :(得分:1)

您可以使用

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

请参阅Regex101

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

如果您希望10,000,000.00与之匹配。