Этого вопрос в продолжении Regex match whole word including whitespace and fullstopУгловой JS регулярного выражения заменить
регулярного выражения, что я, наконец, в конечном итоге, используя это (<(p|li)\b[^<>]*>[^<>\n]*)\b(Cat|Dog|Fish)\b([^<>\n]*<\/\2>)
Теперь, мне нужно заменить подходящее слово с каким-либо другим HTML.
Vks, который помог мне создать это регулярное выражение, сообщил, что я могу получить доступ к переменной $3
, чтобы получить совпадающее слово. Но я не могу сделать эту работу. (https://regex101.com/r/oC5rY5/12#javascript)
Я пытаюсь заменить в Angular JS, что я не очень хорошо знаком.
html.replace(regex, function(fullMatch, match) {
if (angular.isString(match)) {
var abc = fullMatch.length > match.length ? fullMatch[0] : '';
//Custom function to fetch data based on the matched word.
var obj = $scope.getMoreInfo(match);
if (angular.isObject(obj)) {
return abc + '<div class="test123" url="' + obj.Url + '" text="' + match + '">' + match + '</div>';
}
}
return fullMatch;
});
Как я могу получить доступ к $3
здесь? match
не возвращает совпадающее слово. Пробовал использовать match[3]
, но это тоже не работает.
Обратите внимание: моя замена не только для 1 строки, но и для всей страницы HTML, поэтому она должна быть рекурсивной.
это может помочь вам http://stackoverflow.com/questions/432493/how-do-you-access-the-matched-groups-in- a-javascript-regular-expression – vks
Я посмотрел на него, @vks. Он не работает с кучей строк HTML. – NomadTraveler