@serdev5578

Как исправить регулярное выражение оборачивания тегом?

не могу разобраться как сделать чтобы регулярное выражение искало оборачивало в тег только слова которые находятся вне атрибутов тега img и вообще любого тега
это текущий код
html = html.replace(new RegExp(localStorage.getItem('selectedText'), 'g'), `<strong class='highlightText'>${localStorage.getItem('selectedText')}</strong>`);
      html = html.replace(/<img.*?src="(.*?)"/g, "<img src=\"https://static.test.co$1\"");
      html = html.replace(/<a(.*?)>(.*?)<\/a>/g, "<a$1>$2<i class=\"icon-external-link\"></i></a>");

сейчас эта строчка
html = html.replace(new RegExp(localStorage.getItem('selectedText'), 'g'), `<strong class='highlightText'>${localStorage.getItem('selectedText')}</strong>`);
оборачивает в тег span не только простые слова на странице но и слова которые находятся в атрибуте src тега img, и это ломает url адрес изображения на странице. нужна помощь в исправлении
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
Попробуй так
html = html.replace(new RegExp(`\\b${localStorage.getItem('selectedText')}\\b(?!([^<]+)?>)`, 'g'), `<strong class='highlightText'>$&</strong>`);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы