我需要知道如何验证一个数字,但这不是任何数字,我需要验证这个:
如果数字 0 或数字介于0.50和100之间
我可以允许0和任何其他数字(有或没有小数,如果有,最多2位小数),但它必须在0.50和100之间。
我有这个:
^[0-9]+\.?[0-9]*$
但它验证了任何数字,我不能这样做。
我需要在单个表达式中验证它,有人可以帮助我吗? 感谢。
答案 0 :(得分:2)
答案 1 :(得分:2)
这个适合你:
^((?:10)?0|0\.(?:[5-9]\d?)|(?:[1-9]|[1-9]\d)(?:\.\d{1,2})?)$
详细信息:
(?:10)?0
:0和100的特殊情况0\.(?:[5-9]\d?)
:匹配0.50到0.99(包括0.5,0.6 ......)(?:[1-9]|[1-9]\d)(?:\.\d{1,2})
:
(?:[1-9]|[1-9]\d)
:整数部分,匹配1到9,以及10到99 (?:\.\d{1,2})
:小数部分,匹配00到99(包括0,1,2 ......)
答案 2 :(得分:1)
试试这个:
^(100|0|0?\.[5-9][0-9]?|[1-9][0-9]?(\.[0-9][0-9]?)?)$
答案 3 :(得分:0)
我相信这是写它的方式:
^100|[1-9]{1,2}(\\.[0-9]{0,2})?|0(\\.[5-9][0-9])?)$
虽然看起来很尴尬。
LE:
^0$|^100$|^0\\.[5-9]\\d?$|^([1-9]|\\d{2})(\\.\\d{1,2})?$
匹配:0,100,0.50,0.5,1,1.0,1.15等