Использование переменной внутри pregmatch в js - PullRequest
0 голосов
/ 25 января 2012

У меня есть следующий оригинальный код preg match

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);
} 

Ответы [ 3 ]

1 голос
/ 25 января 2012

Как это?

var ab = data.match('Colour'+i+'/(\\d+)"')[1];
1 голос
/ 25 января 2012

Конечно

patt1 = new RegExp("Colour"+i+"/(\\d+)\""); 

, но вы также можете пропустить цикл

patt1 = new RegExp("Colour[0-4]/(\\d+)\"");
1 голос
/ 25 января 2012

Вам придется использовать конструктор RegExp :

for (var i = 0; i < 5; i++)
{
    var patt1 = new RegExp('Colour' + i + '/(\\d+)"'),
        ab = (data.match(patt1) || [])[1]; 
    alert(ab);
}

Не забудьте дважды убрать косую черту!


См. Здесь вдействие: http://jsfiddle.net/q2C55/

...