编写支持0-14且可选.0/.5的JavaScript pH值输入掩码正则表达式
解决pH值输入掩码的正则表达式问题
问题分析
你当前的正则表达式未区分14的特殊限制——14不能带.5后缀,而0-13可自由选择.0或.5后缀,导致部分场景匹配失效。
修正后的正则表达式
options.regex = "^(?:[0-9](?:\\.[05])?|1[0-3](?:\\.[05])?|14(?:\\.0)?)$";
规则拆解
[0-9](?:\\.[05])?:匹配0-9的整数,或带.0/.5的小数(例如0、0.0、0.5、9、9.5)1[0-3](?:\\.[05])?:匹配10-13的整数,或带.0/.5的小数(例如10、10.5、13、13.5)14(?:\\.0)?:匹配14或14.0(禁止14.5,符合pH最大值为14的规则)(?:...):非捕获组,仅用于分组逻辑,不存储匹配结果^和$:确保字符串完全匹配,避免部分有效但整体无效的输入(比如145)
验证有效示例
- 整数:0、5、10、14
- 小数:0.0、0.5、9.5、13.0、14.0
内容的提问来源于stack exchange,提问作者jamesgarrett
相关产品推荐
相关产品推荐

