4

我使用这个正则表达式

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

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

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

PS我看到这个页面JavaScript regex pattern concatenate with variable 但不理解如何使用这些帖子中的示例,就我而言。

4

3 回答 3

10

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

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

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

于 2012-10-25T13:02:39.423 回答
4
var number = "2"
var p = new RegExp("\\d{" + number + "}");
于 2012-10-25T13:02:19.320 回答
4

这应该有效:

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

alert(p[0]);
于 2012-10-25T13:02:55.853 回答