Сообщение от рони
|
MashaDo,
regex = new RegExp('(^|\\s)' + original_escaped + '($|\\s)', 'gi');
|
А как насчёт «Маша! Маша, как дела?»? Или такое не надо заменять?
Вот изменённое определение
\b (напоминаю для рони, что это синтаксический сахар для
(?<=\W)(?=\w)|(?<=\w)(?=\W))
Так что правильный вариант такой:
MashaDo,
regex = new RegExp(`(?:^|(?<=\\W)(?=\\S))${original_escaped}(?:(?<=\\S)(?=\\W)|$)`, "gi");
или можно расширить кириллицей...
regex = new RegExp(`(?:^|(?<=[^a-zёа-я0-9_])(?=[a-zёа-я0-9_]))${original_escaped}(?:(?<=[a-zёа-я0-9_])(?=[^a-zёа-я0-9_])|$)`, "gi");
\b не работает с кириллицей, поскольку в его определении указано
\w, а оно соответственно является синтаксическим сахаром только для
[A-Za-z0-9_].