@Drovosek01

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

Доброго времени суток.

Имеется следующая регулярка:
/^[A-Яа-яёЁ]+[A-Яа-яёЁ\s\-'\d]+[A-Яа-яёЁ\-'\d]$/i

При проверке ее в консоли devtools (Google Chrome) - "матчится" строка с обратным апострофом (который на клавише с буквой "ё")

615d954df3a1f871541183.jpeg

Вот код:
let str = 'тест`ТЕСТ 123-45-54 654'

let regexp = /^[A-Яа-яёЁ]+[A-Яа-яёЁ\s\-'\d]+[A-Яа-яёЁ\-'\d]$/i

str.match(regexp)


В сайтах-"песочницах" для проверки регулярок все нормально, эта строка не матчится.

Почему JS выдает совпадение с указанной строкой, если в регулярке не указан символ обратного апострофа? Как исправить это поведение?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
[А-Я]
тут буква А - латинская, в интервале между латинской А и русской Я много чего. Проверь буквы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
Какая-то лажа при использовании диапазона заглавных букв А-Я в списке символов. Если его не указывать (а его и не надо указывать - ведь указан флаг i), то всё работает.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы