我有以下原始匹配的原始代码
for(var i = 0;i<5;i++)
{
patt1 = /Colour1\/(\d+)"/;
var ab=(data.match(patt1)[1]);
alert(ab);
}
我想知道我是否可以使用变量i而不是1(对于5个循环),如下例所示。我可以在外部使用值 i ,但不能在pregmatch中使用。
for(var i = 0;i<5;i++)
{<br>
patt1 = /Colour"+i+"\/(\d+)"/;
var ab=(data.match(patt1)[1]);
alert(ab);
}
答案 0 :(得分:1)
您必须使用RegExp
constructor:
for (var i = 0; i < 5; i++)
{
var patt1 = new RegExp('Colour' + i + '/(\\d+)"'),
ab = (data.match(patt1) || [])[1];
alert(ab);
}
记得加倍逃避你的斜线!
在此处查看:[{3}}
答案 1 :(得分:1)
喜欢这个吗?
var ab = data.match('Colour'+i+'/(\\d+)"')[1];
答案 2 :(得分:1)
不确定
patt1 = new RegExp("Colour"+i+"/(\\d+)\"");
但你也可以跳过循环
patt1 = new RegExp("Colour[0-4]/(\\d+)\"");