Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Не воспринимается кириллица. (https://javascript.ru/forum/css-html-browser/77629-ne-vosprinimaetsya-kirillica.html)

MashaDo 29.05.2019 17:18

прошу прощения)не верно исправила код)
заработало. Спасибо большое!

Malleys 29.05.2019 17:22

Цитата:

Сообщение от рони (Сообщение 508492)
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_].

рони 29.05.2019 17:32

MashaDo,
regex = new RegExp(`(^|\\s|[.,])${original_escaped}($|\\s|[.,])`, 'gi');
			if (v.match(regex)) {
				v = v.replace(regex, `$1${replacements[original]}$2`);
				matchFound = true;
			}

Malleys 29.05.2019 17:42

рони, а чем не устроило моё решение, или почему такое ограниченное понимание границы слова?

рони 29.05.2019 18:05

Цитата:

Сообщение от Malleys
а чем не устроило моё решение,

1. не видел 2. не знаю этот сахар, не могу использовать, не уверен в поддержке метода
Цитата:

Сообщение от Malleys
почему такое ограниченное понимание границы слова?

если нужно можно добавить кавычки, двоеточие и прочие знаки [., сюда];

Malleys 29.05.2019 18:27

Цитата:

Сообщение от рони
если нужно можно добавить кавычки, двоеточие и прочие знаки [., сюда];

Что значит нужно? Это необходимо! Написали решение, которое всё время нужно исправлять. И в принципе оно у вас плохо поддерживается, так как легче сказать, что в слово входит, чем что в слово не должно входить!

рони 29.05.2019 18:33

Malleys,
ссылку на сахар не подскажите?

Malleys 29.05.2019 18:48

В учебнике Ильи Кантора написано: https://learn.javascript.ru/regexp-c...anitsa-slova-b (это магия , не объясняется откуда взялось \b, почему всё-таки только граница английских слов)

https://en.wikipedia.org/wiki/Regula...racter_classes

рони 29.05.2019 18:53

Malleys,
как узнать про поддержку Позитивный просмотр назад (?<=\W) ?

Malleys 29.05.2019 19:02

https://caniuse.com/#feat=js-regexp-lookbehind
https://kangax.github.io/compat-tabl...ind_Assertions (включая node.js)


Часовой пояс GMT +3, время: 19:25.