请帮我按照以下规则制作正则表达式 -
答案 0 :(得分:3)
嗯,这对Regexp来说不是一个真正的工作,但无论如何它都适用:
/(\d{2,4}(\.(\d[1-9])|([1-9]\d))?)|[1-9]/
更严格的评估将是:
/^([1-9]\d{,3}(\.\d{1,2})?)?|(0\.([1-9]\d?)|(0\.0[1-9]))$/
不接受前导零,但只允许一个小数:“0.1”。 请记住,小数是可选的。
但我建议使用数学运算:转换为float然后检查:
if((num > 0) && (num < 100000)) {...}
您可以使用sprintf()
来获取所需的表示,例如限制小数位数等。
答案 1 :(得分:2)
为什么需要正则表达式来执行此操作?只需将您的字符串转换为double,然后检查它是否介于0.01和9999.99之间。
答案 2 :(得分:0)
正如人们已经回答的那样,使用[0-9]或\ d可以很容易地获得数字。通过使用{min,max},您可以指定匹配的字符或字符集的数量。
这是一个很好的参考:http://www.regular-expressions.info/reference.html