Javascript 正则表达式在0.0到150.0之间匹配(包括浮点)
我有一个问题:我应该将值从0.0匹配到特定的双精度值(例如,我应该将值从0.0匹配到150.00,包括12、21.23213、149.111) 有人能帮我吗 我什么都试过了 我将这个regexp用于0.0到60.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-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*
)$