正则表达式的价格,需要小数点和2位小数

时间:2016-02-01 12:05:42

标签: regex validation

我正在尝试在Javascript中验证价格字段。

该值只能是数字,必须有1个小数点,并且后面必须有2个小数位。小数点前面只能有7位数字。喜欢:1000000.00

Accepted:
123.00
1.01
0.01
4576.23
1234567.00
1.00
Not accepted:
0.00 (Cannot be free)
0.1 (not 2 decimal places)
1.0 (not 2 decimal places)
01.01 (Cannot start with 0)
12345678.00 (too many digits)
123 (no decimal point and 2 places)
-123.12 (negative, and unacceptable character)
123.123 (too many places)

我不确定如何处理这个问题,任何帮助将不胜感激。关于如何编写我自己的正则表达式的简单指南也会有所帮助,因为英语不是我的强项。提前谢谢。

这是我自己尝试的内容:/^ [0-9] +。[0-9] {2} $ / 但我不确定如何处理0和长度问题。

3 个答案:

答案 0 :(得分:1)

这个正则表达式将解决您的问题。我已根据您提供的所有选项检查了它。

^(0(?!\.00)|[1-9]\d{0,6})\.\d{2}$

如果您不知道如何针对JavaScript中的字符串测试正则表达式,可以查看以下链接。

http://www.w3schools.com/jsref/jsref_regexp_test.asp

答案 1 :(得分:0)

尝试此模式^(?!^0\.00$)(([1-9][\d]{0,6})|([0]))\.[\d]{2}$

它排除了0.00和负数以及数字之前或之后的任何空格(负面情况)

希望我涵盖所有可能性

您可以检查测试用例here

答案 2 :(得分:0)

以下正则表达式模式匹配1到7位数后跟“。”的行。还有2个数字,不包括以0(或字母)开头的数字

^[1-9]\d{0,6}\.\d{2}$