首页 > 解决方案 > 带有两位小数或非负整数的非负数的正则表达式。无前导 0

问题描述

As-salāmu ʿalaykum,

Allowed:

0
0.00
0.01
0.10
0.11
1
1.00
1.10
1.01
1.11
99999999
99999999.00
99999999.01
99999999.10
99999999.11

NOT ALLOWED:
.
.00
00
00.
00.00
00.01
00.10
00.11
01
010
01.
01.00
01.000

我可以继续,但我想你明白我想要什么的要点。正则表达式将用于验证货币,最多有两个可选小数。小数点左边没有上限,只要它不是前导 0。

它将在 Java 应用程序中使用。

提前致谢

标签: regexvalidation

解决方案


一种选择是,从字符串的开头开始,对 0 后跟一个数字使用负前瞻,然后只测试可选的数字,后跟 a.后跟更多数字:

^(?!0\d)\d+(\.\d\d)?

https://regex101.com/r/5nUmlI/1/


推荐阅读