适配0-9、10-99分档长度约束的数值输入校验正则实现
严格数值输入匹配正则实现方案
约束规则拆解
先明确需要满足的输入限制:
- 整数部分仅支持两类取值:
- 单数字整数:范围为0-9,必须附带小数点,完整输入最大长度为4(即1位整数 + 1位小数点 + 最多2位小数)
- 双数字整数:范围为10-99,必须附带小数点,完整输入最大长度为5(即2位整数 + 1位小数点 + 最多2位小数)
- 排除的非法输入包括:无小数点的纯整数、3位及以上整数、前导零双位整数(如05、09)、小数位数超过2位、无整数部分的纯小数(如.12)
最终匹配正则
/^(?:[0-9]\.[0-9]{1,2}|[1-9][0-9]\.[0-9]{1,2})$/
注:如果业务允许仅输入小数点无小数位的格式(如
1.、12.),可将正则中的{1,2}替换为{0,2};如果要求必须固定2位小数,可替换为{2}。
校验示例
合法输入
0.99、1.23(单数字整数类)10.12、99.99(双数字整数类)5.6、24.7(小数1位的合法场景)
非法输入
123.45(整数位为3位)05.23(双位整数前导零)12(无小数点).12(无整数部分)12.345(小数位超过2位)
内容的提问来源于stack exchange,提问作者fosho
相关产品推荐
相关产品推荐

