我有一个问题:我应该将值从0.0匹配到特定的double值(例如,我应匹配从0.0到150.00,包括值为12,21.23213,149.111)
有人可以帮帮我吗?
我尝试了一切.
我用这个正则表达式匹配0.0到60.0,但它不起作用
(^0(\.[0-9]+)?$|^[1-9]{1}(\.[0-9]+)?$|^[1-5]{1}[0-9]{1}(\.[0-9]+)?$|^60$)
Run Code Online (Sandbox Code Playgroud)
用123它不起作用
先感谢您
马尔科
Dom*_*ger 14
不要使用正则表达式 - 使用Number,检查它是一个数字isNaN,然后使用<=和比较值>=.
例如
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
}
Run Code Online (Sandbox Code Playgroud)
NB 根据林肯的评论,我根据AndyE的评论改变了我的使用答案,Number而不是在进行数值比较之前parseFloat检查NaN.
我同意其他答案:正则表达式是一种糟糕的数字比较方法.
如果你真的需要,或者:
然后:
^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*
)$
Run Code Online (Sandbox Code Playgroud)
(添加了换行符/注释以便于阅读,删除即可使用.)
这不支持E-notation(150 = 1.5E2),但应该允许正常的JS Number解析.
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |