嗨我现在正在制作一些正则表达式,我想添加条件允许只有大于0.5的数字这是我的正则表达式
^(?![.0]*$)[0-9]+(?:\.[1-9]{1,2})?$
我只想在0到0.5之间的值与此不匹配。 谢谢
答案 0 :(得分:8)
正则表达式非常棒,但它们很难阅读和维护。这感觉就像你应该解析字符串并比较值。
var num = parseFloat(input);
if (num > 0.5)
...
答案 1 :(得分:1)
(^(?![.0]*$)[1-9]+(?:\.[0-9]{1,2})?$)|(^(?![.0]*$)[0]+(?:\.[5-9][0-9]*)?$)
也很容易阅读!
答案 2 :(得分:0)
此正则表达式可能有效:(Check here)
^([0-9]+|[0-9]+[0-9]\.[0-9]+|[1-9]\.[0-9]+|0\.[5-9][0-9]*)$
答案 3 :(得分:0)
此正则表达式允许两位小数和大于0.50的数字
^((?!0*(\.0+)?$)[0-9]+|[0-9]+[0-9]\.[0-9]{1,2}+|[1-9]\.[0-9]+|0\.[5-9][0-9]?)$
答案 4 :(得分:0)
你真的应该使用@dontangg的答案。
但是如果你想要一个正则表达式,那么这就是一个完成这项工作的人:
^(?:0\.5[1-9]\d*|0\.[6-9]\d*|\d+[1-9](?:\.\d+)?)$
<强>解释强>
^ : begining of string
(?: : begining of non-capture group
0\.5[1-9]\d*: 0. followed by number greater than 50
| :
0\.[6-9]\d* : 0. followed by number greater than 5 then any number of digits
| : OR
\d+[1-9] : any digit followed by number from 1 to 9
(?: : begining of non-capture group
\.\d+ : a dot followed by any digits
)? : end of non capture group, optional
) : end of non-capture group
$ : end of string
匹配:
0.51
12
12.34
不匹配:
0
0.2
0.25
0.5
0.50