如何编写正则表达式精准匹配分数或百分比格式数字?
精准匹配分数或百分比的正则表达式解决方案
正确的正则表达式
/^(?:[1-9]\d*\/[1-9]\d*|[1-9]\d*%)$/
规则说明
- 分数格式:分子和分母均为无前导零的正整数(如
1/2、10/23),排除分子/分母为0、带前导零的情况(如0/2、02/15) - 百分比格式:数字部分为无前导零的正整数,末尾紧跟
%(如50%、2%),排除纯数字、混合格式(如50、1/2%)
你之前正则的问题
- 语法错误:正则中的
/是分隔符,必须转义为\/,否则会破坏正则结构 - 无规则限制:没有排除前导零和分子/分母为0的情况,导致匹配到不符合要求的内容
匹配验证
- 匹配:
1/2、1/10、10/23、13/30、50%、2% - 不匹配:
0/2、1/0、02/15、50、4、1/2%
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

