正则表达式验证三位数与一位小数

时间:2017-03-28 11:31:21

标签: javascript jquery regex client-side-validation

我编写了一个正则表达式来验证包含三位数和一位小数的数字,但在所有情况下它总是返回false。

re = new RegExp("^\d{1,3}\.*\d{0,1}$");
re.test(33.0);

我尝试了很多组合,但它不起作用。目标是验证一个最大3位数字,一位小数,小于100.我可以处理少于100的部分。

5 个答案:

答案 0 :(得分:1)

您可以使用以下代码::

re = new RegExp("^[0-9]\d{0,2}(?:\.\d{0,1})?$");
re.test(33.0);

REGEX DEMO

答案 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));