Javascript正则表达式允许使用逗号

时间:2015-05-21 09:09:15

标签: javascript regex

我有正则表达式表达式,允许用户输入decimal or without decimal的金额。当数量为comma(,)时,我面临问题。我希望允许comma(,)金额。

这是我的正则表达式

var regexp = new RegExp("^\\$?(?=.*[1-9])(?:[1-9]\\d*\\.?|0?\\.)\\d*$")

以上表达式使用以下数量

123
1.232
112.2
$12.0
$0.1

以下

失败
$42,529.41
$4,529.41

如何允许逗号数量?金额必须大于零。

2 个答案:

答案 0 :(得分:1)

使用模式允许整数部分使用逗号并使其重复零次或多次。添加否定前瞻,以便不与00.000等匹配

var regexp = /^\$?(?!0+(?:\.0+)?$)\d+(?:,\d+)*(?:\.\d+)?$/m;

OR

^(?=.*?[1-9])\$?\d+(?:,\d+)*(?:\.\d+)?$

DEMO

答案 1 :(得分:1)

^\\$?(?=.*[1-9])(?:[1-9]\\d*,?\\d*[.]?|0?[.])\\d*$

                            ^^  ^^

试试这个。看看演示。

https://regex101.com/r/nD5jY4/1