我正在尝试验证文本框,我希望用户只能在0.1和4.0之间输入,我正在使用以下正则表达式
^[0-4](\.[0-9]+)?$
事情是甚至接受4.1等等直到4.9
有关我如何解决此问题的任何想法
由于
答案 0 :(得分:4)
试试这个
^(?:[0-3](?:\.[0-9]+)?|4(?:\.0)?)$
修改强>
我添加了非捕获组。
正如Cyprus所问,这里有一个解释: 我将原始正则表达式限制为3.9并为4(.0)
添加了另一个条件NODE EXPLANATION
^ //the beginning of the string
(?: //group, but do not capture:
[0-3] //any character of: '0' to '3'
(?: //group, but do not capture (optional):
\. //'.'
[0-9]+ //any character of: '0' to '9' (1 or more times)
)? //end of grouping
| //OR
4 //'4'
(?: //group, but do not capture (optional):
\. //'.'
0 //'0'
)? //end of grouping
) //end of grouping
$ //before an optional \n, and the end of the string