我使用这个正则表达式
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 但在我的情况下,不明白如何使用这些帖子的例子。
答案 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 + "}");