1PeGaS
@1PeGaS

Почему регулярное выражение не работает с русским текстом?

Помогите настроить чтобы работал с русским текстом? https://jsfiddle.net/avLkLr2m/1/
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
@Dubrovin
Две ошибки, первая \b - это граница слова, вам вообще не нужно это использовать. Вторая ошибка в том, что \w - это символьный класс [a-zA-Z0-9_] а вам нужен символьный класс [а-яА-Яa-zA-Z]
Правильный вариант:
var s = "abc русский текст".replace(/[а-яА-Яa-zA-Z]/g, function(v) {
		return v.toString().toUpperCase();
});

alert(s);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@RidgeA
коротко - `\b` только буквы английского алфавита.
Если интерестно - вот тут подробнее - www.ecma-international.org/ecma-262/5.1/#sec-15.10.2.6
Ответ написан
IonDen
@IonDen
JavaScript developer. IonDen.com
Используйте юникод последовательность отвечающую за кирилицу: \u0400-\u04FF - если мне не изменяет память.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
24 нояб. 2024, в 14:37
3000 руб./в час
24 нояб. 2024, в 13:04
500 руб./в час
24 нояб. 2024, в 12:29
3000 руб./за проект