Заменить функцию обратного вызова на соответствие
необходимо заменить <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()
?
Ответы
Ответ 1
replace
функция обратного вызова принимает совпадения в качестве параметров.
Например:
text = text.replace(/<wiki>(.+?)<\/wiki>/g, function(match, contents, offset, input_string)
{
return "<a href='wiki/"+contents.replace(/ /g, '_')+"'>"+contents+"</a>";
}
);
(Второй параметр - первая группа захвата)