正则表达式允许1到18之间的数字与十进制值

时间:2019-04-16 04:38:55

标签: php regex

我正在尝试编写正则表达式,该正则表达式只允许1-18之间的数字为十进制值。 下面的表达式允许18.10-18.99。请提出建议。 预先感谢

((?:[1-9]|1[0-8])(?:\.\d{1,2})?|18(?:\.00?)?)$

1 个答案:

答案 0 :(得分:4)

您的正则表达式基本上没问题,您只需要将[0-8]更改为[0-7],以允许除1818.0以外的任何以18.00开头的值,则应转义.字符以强制它们仅匹配.。最后,您应该将匹配项锚定到字符串的开头和结尾:

^((?:[1-9]|1[0-7])(?:\.\d{1,2})?|18(?:\.00?)?)$

Demo on regex101
Demo on 3v4l.org