Javascript Regexp loop all match

I ' m пытается сделать что-то подобное с редактором форматированного текста для переполнения стека. Учитывая этот текст:

[Text Example][1]

[1][http://www.example.com]

Я хочу выполнить цикл для каждого найденного [string] [int] , что я делаю следующим образом:

 var Text = "[Пример текста] [1] \ n [ 1] [http: //www.example.com] "; // Находим ссылки на ресурсы var arrMatch = null; var rePattern = new RegExp ("\\ [(. +?) \\] \\ [([0-9] +) \\]», «gi»); в то время как (arrMatch = rePattern.exec (текст)) {console.log ("хорошо"); } 

Отлично работает, выдает "ОК" для каждого [строка] [int] . Что мне нужно сделать, так это для каждого найденного совпадения заменить исходное совпадение компонентами второго совпадения.

Таким образом, в цикле $ 2 будет представлять часть int, первоначально согласованную, и я бы запустил это регулярное выражение (pseduo)

while (arrMatch = rePattern.exec(Text)) {
    var FindIndex = $2; // This would be 1 in our example
    new RegExp("\\[" + FindIndex + "\\]\\[(.+?)\\]", "g")

    // Replace original match now with hyperlink
}

Это будет соответствовать

[1][http://www.example.com]

Конечным результатом для первого примера будет:

Text Example

Изменить

Я дошел до этого:

 var Text = "[Пример текста] [1] \ n [ 1] [http: //www.example.com] "; // Находим ссылки на ресурсы reg = new RegExp ("\\ [(. +?) \\] \\ [([0-9] +) \\]", "gi"); var результат; в то время как ((результат = reg.exec (Текст))! == null) {var LinkText = результат [1]; var Match = результат [0]; Text = Text.replace (новое регулярное выражение (Match, "g"), ' "+ LinkText +" '); } console.log (текст); 

37
задан Ruslan López 16 August 2016 в 01:35
поделиться