Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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.0到150.0之间匹配(包括浮点)_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式在0.0到150.0之间匹配(包括浮点)

Javascript 正则表达式在0.0到150.0之间匹配(包括浮点),javascript,regex,Javascript,Regex,我有一个问题:我应该将值从0.0匹配到特定的双精度值(例如,我应该将值从0.0匹配到150.00,包括12、21.23213、149.111) 有人能帮我吗 我什么都试过了 我将这个regexp用于0.0到60.0之间的匹配,但它不起作用 (^0(\.[0-9]+)?$|^[1-9]{1}(\.[0-9]+)?$|^[1-5]{1}[0-9]{1}(\.[0-9]+)?$|^60$) 对于123,它不起作用 先谢谢你 Marco不要使用正则表达式-使用,检查它是一个数字,然后使用=比较值 e、

我有一个问题:我应该将值从0.0匹配到特定的双精度值(例如,我应该将值从0.0匹配到150.00,包括12、21.23213、149.111)

有人能帮我吗

我什么都试过了

我将这个regexp用于0.0到60.0之间的匹配,但它不起作用

(^0(\.[0-9]+)?$|^[1-9]{1}(\.[0-9]+)?$|^[1-5]{1}[0-9]{1}(\.[0-9]+)?$|^60$)
对于123,它不起作用

先谢谢你

Marco

不要使用正则表达式-使用,检查它是一个数字,然后使用
=
比较值

e、 g

var your_val=“3.05”;
var your_val_num=数字(your_val);

如果(!isNaN(your_val_num)和&u val_num>=0和&u val_num忘记正则表达式-只需检查(parseFloat(x)==0)

我同意其他答案:正则表达式是进行数值比较的糟糕方法

如果你真的必须这样做,那么:

  • 因为一个愚蠢的框架只允许正则表达式检查,或者
  • 您需要JavaScript数字无法提供的额外的十进制精度(因为JavaScript没有内置的十进制类型)……但是,与整数0和150相比,情况就不是这样了
然后:

(为便于阅读而添加了换行符/注释,请删除以供使用。)


这不支持E表示法(150=1.5E2),但应该允许正常的JS数字解析。

为什么不把它转换成一个浮点数并检查它的数值呢?看在上帝的份上,请不要使用正则表达式!aaaaaa gh!+1,但我会使用
+
或Number()而不是parseFloat(),这会解析类似的东西“149.5grams”为149,在if语句中返回true。是否应该在某个地方调用
isNan
?我已经编辑了您的帖子,将isNan更改为isNan。但是,您并不真正需要它,因为
NaN>=0&&NaN
var your_val = "3.05";
var your_val_num = Number(your_val);
if (!isNaN(your_val_num) && your_val_num >= 0 && your_val_num <= 150) {
  // do something
}
^0*(                    // leading zeroes
150(\.0+)?|             // either exactly 150
1[0-4]\d(\.\d+)?|       // or 100-149.9*
\d{0,2}(\.\d+)?         // or 0-99.9*
)$