我试图使用正则表达式来验证字符串,如:
1 %
12,25 %
99,99 %
100 %
100,00 %
从here
尝试了这个^(100\,00|[1-9]?\d\,\d{2}) %$
但是我需要小数是可选的,而且这个小数字会失败,如“90%”
这样的字符串提前谢谢你,
答案 0 :(得分:1)
因此,将可选部分设为(...)
的捕获组
并通过添加?
结果:
^(100(\,00)?|[1-9]?\d(\,\d{2})?) %$
匹配
赢得不匹配:
答案 1 :(得分:0)
/^(10{2}(?:,0{2})?|[1-9]?\d(?:,\d{2})?) %$/
该模式允许百分比为100,00或1或2位数字(2位数字不以0开头)可选地后跟逗号和2位数。
请参阅Pattern Demo了解匹配,解释和效率。
奖金功能:
我的模式使用重复字符的量词来提高性能 它不会在逗号上使用转义斜杠 - 它们不是必需的 按照OP的模式设计,它不会使用多个捕获组。