Проблема с Javascript RegEx safari

#javascript #regex #browser #safari #word-boundaries

#javascript #регулярное выражение #браузер #safari #границы слов

Вопрос:

Это регулярное выражение на границе слов, которое поддерживает нелатинские буквы, оно работает в Chrome, но не в Safari. есть альтернативное решение?

 new RegExp("(?<=[\s,.:;"']|^)"   word   "(?=[\s,.:;"']|$)","g");
  

Спасибо

Комментарии:

1. Не new RegExp("\b" word "\b","g"); работает?

2. b поддерживает только латинские буквы (a-z, A-Z, 0-9). я хочу поработать с этим на индийских языках

Ответ №1:

Просмотр утверждений не поддерживается в Safari. Проверьте таблицу совместимости здесь
Вместо этого вы можете попробовать без этого.

 const regx = new RegExp("([\s,.:;"']|^)(" word ")([\s,.:;"']|$)","g");
  

Пример

 let word="word";
const regx = new RegExp("([\s,.:;"']|^)(" word ")([\s,.:;"']|$)","g");
console.log('hello word, beautiful word'.replace(regx,'$1World$3'));  

Комментарии:

1. он также выбирает пробел, также хотите избежать первого пробела.

2. @Sarath Я обновил ответ с помощью кода. Пожалуйста, проверьте.

3. ‘hello word, красивое слово’.replace(regx, ‘World’) => «HelloWorld beautifullWorld», я хочу «hello World beautifull World»

4. @Sarath Я обновил свой ответ выше. пожалуйста, проверьте.