带数字计算的正则表达式编号

时间:2017-06-25 17:06:14

标签: regex

我想要一个仅占用数字的工资字段,以及点后最多2位的数字。不允许使用空格和逗号。

以下我的RegEx无效,它允许使用空格和逗号,逗号后面允许超过2位数

("^[+-]?[0-9]{1,3}(?:[0-9]*(?:[.'][0-9]{2})?|(?:'[0-9]{3})*(?:\.[0-9]{2})?|(?:\.[0-9]{3})*(?:'[0-9]{2})?)$");

以下是应该接受的内容

10000
10000.00

不应接受以下内容

10,000
10'000
10000.456
1000.47888
10 000

3 个答案:

答案 0 :(得分:0)

这已在这里得到解答: Regex currency validation 解决方案适用于JavaScript,但通常可以在每种语言中使用正则表达式

答案 1 :(得分:0)

尝试以下方法:

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

说明:

\d+ - 一个或多个数字

(?:\.\d{1,2}){0,1} - 可选(发生一次或根本不发生)点后跟一位或两位数

答案 2 :(得分:0)

这应该可以解决问题:

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

REGEX101 DEMO