如何调整正则表达式以匹配开头无整数部分的有效浮点数?
解决浮点数正则匹配问题
你可以使用这个正则表达式来满足需求:
/^(?:[0-9]{1,10}(\.\d{0,3})?|\.\d{1,3})$/
正则说明
^和$锚定字符串首尾,确保整个输入被校验,避免部分匹配(?:...)是非捕获分组,用来包含两种合法的格式分支:[0-9]{1,10}(\.\d{0,3})?:这是你原有正则的逻辑,匹配1-10位整数开头,后面可跟小数点+0-3位小数(支持0、0.、0.123这类格式)\.\d{1,3}:匹配以小数点开头,后面跟1-3位小数的格式(支持.1、.12、.123这类你需要的输入)
额外调整(如果需要支持单独的.)
如果也需要像0.一样允许单独的.作为合法输入,可以把正则改成:
/^(?:[0-9]{1,10}(\.\d{0,3})?|\.\d{0,3})$/
这个版本会额外匹配单独的.,同时保留所有原有合法格式和你需要的新格式。
内容的提问来源于stack exchange,提问作者Luke R
相关产品推荐
相关产品推荐

