我编写了一个正则表达式来验证包含三位数和一位小数的数字,但在所有情况下它总是返回false。
re = new RegExp("^\d{1,3}\.*\d{0,1}$");
re.test(33.0);
我尝试了很多组合,但它不起作用。目标是验证一个最大3位数字,一位小数,小于100.我可以处理少于100的部分。
答案 0 :(得分:1)
答案 1 :(得分:1)
这个可以做你想要的:
var test = [
123,
12.34,
100.1,
100,
12,
1.2,
1
];
console.log(test.map(function (a) {
return a+' :'+/^(?:100(?:\.0)?|\d{1,2}(?:\.\d)?)$/.test(a);
}));

答案 2 :(得分:0)
更好地使用正则表达式文字:
var re = /^\d{1,2}(\.\d)?$/;
re.test(33.0);
传递数字时要注意floating point precision个问题:
re.test(0.1 * 302); // false, because 0.1 * 302 results in 30.200000000000003 :-(
答案 3 :(得分:0)
请记住逃避你的正则表达式序列:
re = new RegExp(“^ \\ d {1,3} \。* \\ d {0,1} $”);
re.test(33.0);
答案 4 :(得分:0)
尝试使用直接javascript
而不是使用Regex Expression Object/\d{1,3}\.*\d{0,1}$/.test(33.0)
console.log(/\d{1,3}\.*\d{0,1}$/.test(33.0))
如果您想使用RegExp
然后尝试
new RegExp(/\d{1,3}\.*\d{0,1}$/,'i');
re.test(33.0);
let re = new RegExp(/\d{1,3}\.*\d{0,1}$/,'i');
console.log(re.test(33.0));