求匹配0-100带两位小数、支持点/逗号做分隔符的正则表达式
正则调整方案
调整思路
- 原正则仅硬编码了
.作为小数分隔符,将所有匹配小数分隔符的位置替换为字符集[.,],即可同时适配.和,两种多语言小数分隔符规则 - 同步修改100边界场景的小数分隔符匹配逻辑,避免100后接逗号的合法格式无法识别
最终正则
^(?:100(?:[.,]00?)?|\d{1,2}(?:[.,]\d{1,2})?)$
规则说明
- 支持匹配0-100的整数:
0、23、100均为合法值 - 支持匹配带1-2位小数的数值:
1.01、99,99、100.0、100,00均为合法值 - 自动拦截非法值:
100.01、101、99.999、-1、100,01均无法匹配
测试用例参考
合法匹配
099.999,99100100.0100,00
非法匹配
100.01101-199.999100,01
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

