Задать вопрос
@xlo240

Как заменить повторяющиеся слова в тексте рег выражением?

Как заменить повторяющиеся слова в тексте регулярным выражением?
Нашел код который удаляет повторяющиеся слова
var str='При при проверке были были найдены повторяющиеся слова';
alert(str.replace(/([^a-zА-яёЁ]|^)([a-zА-яёЁ]+) (\2)([^a-zA-ZА-яёЁ]|$)/gi,"$1"+"$2"+"$4"))

Нужно же заменить повторябщиеся слова на тоже самое но с форматированием.
Например
заменить "при" на

<strong>при</strong>
  • Вопрос задан
  • 322 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Регулярное выражение можно немного сократить - т.к. используется флаг i, нет необходимости указывать буквы в обоих регистрах. Ну и ещё если не захватывать символ, следующий после слова-дубликата, то не придётся его указывать при замене ($4).

const reg = /([^a-zа-яё]|^)([a-zа-яё]+) (\2)(?=[^a-zа-яё]|$)/gi;

Надо ли удалять повторы? Да:

const newStr = str.replace(reg, '$1<strong>$2</strong>');

Нет:

const newStr = str.replace(reg, '$1$2 <strong>$3</strong>');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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