我正在尝试在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和长度问题。
答案 0 :(得分:1)
这个正则表达式将解决您的问题。我已根据您提供的所有选项检查了它。
^(0(?!\.00)|[1-9]\d{0,6})\.\d{2}$
如果您不知道如何针对JavaScript中的字符串测试正则表达式,可以查看以下链接。
答案 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}$