@Genri_Rus

Как заменить несколько слов в строке?

Допустим есть вот такая строка: "Куриный соус, без соуса, сырный соус"

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

Делал вот так, но неправильно работает: str.replace(/\s+(соу(с|са))/ig, '');
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
WblCHA
@WblCHA
Данные ответы в комментах несовсем верные.
Во-первых, флаг i для нелатинских букв бесполезен. upd.: моя ошибка, в жсе i работает с нелатинскими символами.
Во-вторых, даже без учёта регистра, они не учитывают все варианты.
/(\s*)(?<![\w\dА-ЯЁа-яё\-])[Сс][Оо][Уу][Сс][\w\dА-ЯЁа-яё\-]*(\s*)/g

str.replace(
  /(\s*)(?<![\w\dа-яё\-])соус[\w\dа-яё\-]*(\s*)/ig,
  (_, leftSpaces, rightSpaces) => leftSpaces && rightSpaces ? ' ' : ''
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы