正则表达式中的concat变量

时间:2012-10-25 12:48:48

标签: javascript regex

我使用这个正则表达式

str = "asd34rgr888gfd98";
var p = str.match(/\d{2}/);
alert(p[0]);

但我不明白如何使用变量作为量词,这就是写这个:

 var number = 2;
 var p = str.match(/\d{number}/);

P.S。我看到此页JavaScript regex pattern concatenate with variable 但在我的情况下,不明白如何使用这些帖子的例子。

3 个答案:

答案 0 :(得分:8)

您需要将正则表达式构建为字符串并将其传递给RegExp constructor

var regexString = '\\d{' + number + '}';
var regex = new RegExp(regexString);
var p = str.match(regex);

请注意,在通过字符串构建正则表达式时,需要添加一些额外的转义字符来转义字符串以及正则表达式。

答案 1 :(得分:4)

这应该有效:

var str = "asd34rgr888gfd98";
number = 3;
p = str.match(new RegExp('\\d{' + number + '}'));

alert(p[0]);

答案 2 :(得分:3)

var number = "2"
var p = new RegExp("\\d{" + number + "}");