regex 用于价格验证的正则表达式

huwehgph  于 2022-12-19  发布在  其他
关注(0)|答案(7)|浏览(202)

需要具有以下特性的正则表达式:
1.小数点(.)前最多8位
1.小数点后最多4位
1.小数点可选
最大有效小数位数为小数前8位和小数后4位,因此9999999.9999
我尝试过的正则表达式**^\d{0,8}[.]?\d{1,4}$**对于123456789及以上的值失败。这意味着如果小数点不可用,它将占用8位以上的数字。
测试地点:http://regexpal.com/
提前非常非常感谢!

q9rjltbz

q9rjltbz1#

^\d{0,8}(\.\d{1,4})?$

您可以将整个小数设置为可选

xnifntxz

xnifntxz2#

你可以试试这个:

^\d{1,8}(?:\.\d{1,4})?$

^[1-9]\d{0,7}(?:\.\d{1,4})?$

如果你不想第一个数字是零。
如果需要,可以允许此操作:(.1234口径)

^[1-9]\d{0,7}(?:\.\d{1,4})?|\.\d{1,4}$
yr9zkbsy

yr9zkbsy3#

以上任何一个都不适合我,只有这个适合我

^([0-9]{0,2}((.)[0-9]{0,2}))$
cqoc49vn

cqoc49vn4#

这个正则表达式在大多数情况下都有效,即使是负价格,

(\-?\d+\.?\d{0,2})

使用以下产品进行测试,

9
9.97
37.97
132.97
-125.55
12.2
1000.00
10000.00
100000.00
1000000.00
401395011

如果价格为**$9.97、£9.97或€9.97**,则将验证9.97,并删除符号。

nqwrtyyt

nqwrtyyt5#

1-($+.[1-9])
2-(\£+.
[1-9])此表达式可用于完整的价格数字。

d8tt03nd

d8tt03nd6#

我用这个:

^[1-9]\d{0,7}(\.\d{1-4})$

^=字符串的开头
[1-9]=至少字符串必须以1到9之间的一个数字开始
\d{0,7}=可选或最大7倍d(数字:介于0和9之间的数字)
()=创建类似子字符串的组
.=需要一个。
\d{1-4}=数字重复最多4次
**$**字符串结尾

jc3wubiy

jc3wubiy7#

对于价格验证,我们不允许输入带有前导重复零,如0012等。
我的解决方案检查任何情况下。它也允许最大2小数点后的点。

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

相关问题