/^[\-\.\s\'A-яA-zЁёәіңғүұқөһӘІҢҒҮҰҚӨҺ]*$/
- это регулярное выражение почему-то пропускает ^\_
. Как правильно написать, чтобы оно не пропускало эти символы?
A-яA-z
А-Яа-яA-Za-z
Про Ёё
не забыл - она есть дальше в оригинальном выражении.
PS: Сколько ж можно...
Рассмотрим таблицу ASCII символов (взята отсюда):
-
работает как указатель на диапазон символов.
Рассмотрим, что включает в себя диапазон символов A-z
согласно таблице.
Этот диапазон включает в себя символы с 65 по 122, среди которых помимо букв латинского алфавита в разном регистре присутствуют \
, ^
и _
. Как раз те символы, которые вы не планировали включать в выражение, но, по неосторожности, включили.
С русскими символами тоже все не так просто. В Unicode почти все буквы русского алфавита в верхнем и нижнем регистре (кроме ё
и Ё
) укладываются в диапазон 0410 - 044F
. У Ё
код 0401
, а у ё
код 0451
.
Поэтому приходится формировать такой диапазон для букв русского алфавита: [а-яА-ЯЁё]
. Здесь вы все сделали правильно.
Для справки: в javascript можно пользоваться и альтернативным синтаксисом диапазона для русских букв: [\u0410-\u044f\u0401\u0451]
, что полностью эквивалентно [а-яА-ЯЁё]
.
Вывод здесь один: надо осторожнее пользоваться диапазонами.
В вашем случае необходимо вместо A-яA-z
использовать а-яА-Яa-zA-Z
. Полный пример:
/^[\-\.\s\'а-яА-Яa-zA-ZЁёәіңғүұқөһӘІҢҒҮҰҚӨҺ]*$/
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть форма с 2 кнопками(последние и популярные), при выборе должно выводить записи соответствующиеТ
есть строка с вариантами ответа в виде { }{ }{ { } } нужно написать регулярки для того чтобы открыть скобки, то что внутри скобок не важно, чисто...