Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为0.01-8.50之间的数字范围生成正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 如何为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

要为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<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)$