Подтвердить что ты не робот

Заменить функцию обратного вызова на соответствие

необходимо заменить <wiki>this page</wiki> на <a href='wiki/this_page'>this page</a>
используя функцию обратного вызова:

text = text.replace(/<wiki>(.+?)<\/wiki>/g, function(match)
    {
        return "<a href='wiki/"+match.replace(/ /g, '_')+"'>"+match+"</a>";
    }
);
Результатом

является сохранение тега <wiki> (полное совпадение) - <a href='wiki/<wiki>this_page</wiki>'><wiki>this page</wiki></a>

Есть ли способ получить совпадения [0], соответствует [1], как в PHP preg_replace_callback()?

4b9b3361

Ответ 1

replace функция обратного вызова принимает совпадения в качестве параметров.

Например:

text = text.replace(/<wiki>(.+?)<\/wiki>/g, function(match, contents, offset, input_string)
    {
        return "<a href='wiki/"+contents.replace(/ /g, '_')+"'>"+contents+"</a>";
    }
);

(Второй параметр - первая группа захвата)