正则表达价格

时间:2014-02-12 10:09:55

标签: regex

我正在努力为我的需求找到有效的价格验证..

有效输入格式(xxx表示没有最大长度 - 0000表示最多4位小数):

15,0000
15.0000
150.0000
150,0000
xxxxxxxxxxxx.0000
xxxxxxxxxxxx,0000
15,00
15,1
15.00
15.1

无效的输入格式(基本上所有以0开头的内容):

01.0000
01.00
01

到目前为止我的正则表达式:^\$?[1-9][1-9,]*[0-9]\.?[0-9]{0,2}$

修改1 :更改了我的正则表达式:^\$?[1-9]*[1-9]((\,)|(\.))?[0-9]{0,4}$但现在我需要能够添加150000000,它只允许我150000 < / p>

4 个答案:

答案 0 :(得分:2)

编辑:刚看到你更新了问题并添加了0作为有效输入。我会看看是否可以添加。

怎么样:

^([1-9].*[,\.][0-9]*)$

这将适用于上面的例子。

但请小心输入15x,001

See it in action

答案 1 :(得分:0)

这个怎么样:

^\$?[1-9][0-9]*(,|\.)[0-9]{1,4}$

第一个正则表达式确保价格不会从零开始。 然后允许所有数字,零个或多个数字。 然后必须有一个逗号或一个点。 最后允许所有数字,最大数量为4,最小数量为

答案 2 :(得分:0)

好的,这个对我来说似乎没问题

^[^0]\d+(\.|\,)?[0-9]{0,4}$

点击此处http://rubular.com/r/97Ra9VS9h4

如果您想检查一位数字也是另外一件事,如1,2等

然后您可以将+替换为*,例如^[^0]\d*(\.|\,)?[0-9]{0,4}$

答案 3 :(得分:0)

^[1-9][0-9]*([.,][0-9]{1,4})?$