正则表达式需求:仅允许小数点前为0或无整数位(最多两位小数)
解决方案:符合需求的正则表达式
正确正则表达式
^(0?\.\d{1,2})$
匹配规则说明
^和$:限定匹配整个输入字符串,避免部分匹配的误判0?:允许整数位为空,或者仅为数字0,直接排除整数位为1-9的情况\.:强制匹配小数点,彻底杜绝纯整数输入\d{1,2}:匹配1到2位数字,保证小数部分长度符合要求
验证示例
允许通过的输入
.100.10.990.99.1(若系统接受1位小数,符合规则)
被禁止的输入
1(纯整数,无小数点)1.00(整数位为1)9.00(整数位为9)1.99(整数位为1)0(纯整数,无小数点)10.11(整数位为两位数字)
之前尝试的问题分析
- 使用
^\d{0,0}(.\d{1,2})?$时,\d{0,0}要求整数位必须为空,因此0.11这类带0的输入会被判定不合法 - 使用
^\d{0,1}(.\d{1,2})?$时,\d{0,1}允许整数位为0-9的任意单个数字,导致1.99、9.99这类不符合需求的输入被错误放行
内容的提问来源于stack exchange,提问作者Bob Owens
相关产品推荐
相关产品推荐

