为什么加号运算符不能在JavaScript的正则表达式中使用?

时间:2018-07-25 08:23:04

标签: javascript regex

我是JavaScript新手,我制作了regex来验证例如的十进制值。 (10.12, 100.22, 5.5 etc)。它接受3位数字和2位小数。我在https://regex101.com/上测试了此正则表达式,效果很好。

/^[0-9]{1,3}+(\.[0-9]{1,2})?$/

但是问题出在我在Vue中使用此正则表达式时,正则表达式中使用的加号(+)运算符给出了错误:

Invalid regular expression: /^[0-9]{1,3}+(\.[0-9]{1,2})?$/: Nothing to repeat 

1 个答案:

答案 0 :(得分:3)

在这种情况下,不需要+就是“一个或多个”,因为您需要精确匹配一个。

在第一部分周围添加圆括号,以匹配整数和小数部分。

var n = '120.50';
var m1 = n.match(/^[0-9]{1,3}(\.[0-9]{1,2})?$/);
var m2 = n.match(/(^[0-9]{1,3})(\.[0-9]{1,2})?$/);
console.log(m1, m2);