Javascript 如何为0.01-8.50之间的数字范围生成正则表达式
要为0.01到8.50之间的数字范围生成正则表达式吗 谁能帮帮我吗 我已经试过了Javascript 如何为0.01-8.50之间的数字范围生成正则表达式,javascript,regex,Javascript,Regex,要为0.01到8.50之间的数字范围生成正则表达式吗 谁能帮帮我吗 我已经试过了 ^\d{1}(\.\d{2})?$ 假设圆点后应该有2位数字,您可以使用: ^字符串的开头 0\.0[1-9]匹配0.01到0.09 |或 0\[1-9][0-9]匹配0.10-0.99 |或 [1-7]\.[0-9]{2}匹配1.00到7.99 |或 8\(?:[0-4][0-9]| 50)匹配8.00到8.49或8.50 $字符串结尾 regex用于此比较是过分的return num>0.01&&num
^\d{1}(\.\d{2})?$
假设圆点后应该有2位数字,您可以使用:
字符串的开头^
匹配0.01到0.090\.0[1-9]
或|
匹配0.10-0.990\[1-9][0-9]
或|
匹配1.00到7.99[1-7]\.[0-9]{2}
或|
匹配8.00到8.49或8.508\(?:[0-4][0-9]| 50)
字符串结尾$
regex用于此比较是过分的
return num>0.01&&num<8.50
。是否有理由使用regex进行此比较?正则表达式是用于文本模式的,数字范围之类的东西对于使用正则表达式来说是非常糟糕的。我们需要正则表达式,因为我们动态生成textbox,所以必须动态验证它。有什么可能的解决方案吗?0.011有效吗?如果我在小数点后需要1或2个字符,怎么办?就像它应该允许1.1和1.10一样。@VK那么模式会稍微大一点^(?[1-7](?:\.[0-9]{1,2})?8(?:\.[0-4][0-9]?.50?)\124; 0\.0[1-9];0\.[1-9][0-9]$
请看它允许0、1或2位数字。这个模式:[1-7](?:\[0-9]{1,2})8(?:\[0-4][0-9]?\.50?| 0\.0[1-9]{0-9][0-9]?)$将允许1或2位数字
^0\.0[1-9]|0\.[1-9][0-9]|[1-7]\.[0-9]{2}|8\.(?:[0-4][0-9]|50)$