a za zа яа яее

Примеры шаблонов для использования в input pattern

HTML Проверка номера телефона

Mask на чистом javascript

Более сложная проверка вводимого номера телефона в input-поле с проверкой и подстановкой дополнительных символов:

HTML Проверка даты

Метод checkValidity() может быть выполнен на любом отдельном поле или формы в целом, вернув true или false — соответствует шаблону или нет.

Почему не работает с юникодом, например я ввожу Б получаю False.

2 ответа 2

В диапазон [a-zA-Z] не входит, Вы можете явно указать, что нужно сопоставлять с кириллицей r'[a-zA-Zа-яА-Я]’ или так r’w’ во втором случае помимо букв в сопоставление будут включены символы 0123456789_ . Флаг UNICODE в Python3 ставится по дефолту, так что его прописывать не обязательно.

что означает [a-zA-Z] ? То что в этот диапазон входят все символы от a до z и от A до Z . Буква Б сюда не входит. Для включения так же русских символов необходимо сделать маску [a-zA-Zа-яА-ЯёЁ] .

Дело в том что каждому символу соответствует свой номер, диапазон a-z означает что все символы номер которых от номера a до номера z , эти символы имеют последовательную нумерацию. Отдельно указывается A-Z так как там нумерация уже идёт в другом блоке, отдельно от a-z , аналогично и для а-я , А-Я , ёЁ . Тире соответствует диапазону от a до z .

Содержание

Представление символов по их коду [ править | править код ]

В некоторых случаях предпочтительно представление символов по их коду.

Представление Пояснение Кодировка
n n — восьмеричное число от 0 до 377 8-битная
xdd d — шестнадцатеричная цифра
udddd 16-битная (Юникод)

Управляющие символы [ править | править код ]

Представление Символ Обозначение Расшифровка
Горизонтальная табуляция HT Horizontal tabulation
v Вертикальная табуляция VT Vertical tabulation
Возврат каретки CR Carriage return
Перевод строки (прогон строки, подача строки) LF Line feed
f Конец страницы (прогон страницы) FF Form feed
a Звонок BEL Bell character
e Ключ (управляющий символ, Escape-символ) ESC Escape character
 Backspace

Должен находиться внутри квадратных скобок (иначе интерпретируется как граница слова).

BS Backspace cA … cZ Ctrl+A … Ctrl+Z

Например, последовательность cMcJ соответствует управляющим символам CR LF .

Эквивалентно x01 … x1A .

Сокращённые обозначения символьных классов [ править | править код ]

Для часто используемых символьных классов существуют краткие обозначения.

Представление Эквивалент Значение
d [0-9] Цифра
D [^d] Любой символ, кроме цифры
w [A-Za-zА-Яа-я0-9_] Символы, образующие «слово» (буквы, цифры и символ подчёркивания) [1]
W [^w] Символы, не образующие «слово»
s [ v
f]
Пробельный символ
S [^s] Непробельный символ

Символьные классы POSIX [ править | править код ]

Многие диапазоны символов зависят от выбранных настроек локализации. POSIX стандартизовал объявление некоторых классов и категорий символов, как показано в следующей таблице.

POSIX-класс Эквивалент Значение
[:upper:] [A-Z] Символы верхнего регистра
[:lower:] [a-z] Символы нижнего регистра
[:alpha:] [[:upper:][:lower:]] Буквы
[:digit:] [0-9] , т. е. d Цифры
[:xdigit:] [[:digit:]A-Fa-f] Шестнадцатеричные цифры
[:alnum:] [[:alpha:][:digit:]] Буквы и цифры
[:word:] [[:alnum:]_] , т. е. w Символы, образующие «слово»
[:punct:] [-!»#$%&'()*+,./:; ?@[\]_`

]

Знаки пунктуации
[:blank:] [ ] Пробел и табуляция
[:space:] [[:blank:]v
f] , т. е. s
Пробельные символы
[:cntrl:] [x00-x1Fx7F] Управляющие символы
[:graph:] [x21-x7E] Печатные символы
[:print:] [x20-x7E] , т. е. [[:graph:] ] Печатные символы с пробелом

Использование класса возможно лишь внутри квадратных скобок (пример частой ошибки — ^[:upper:]il+$ вместо ^[[:upper:]]il+$ ).

Оцените статью