#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 Я обновил свой ответ выше. пожалуйста, проверьте.