Общая информация
Регулярное выражение — это последовательность специальных символов, формирующих паттерн или шаблон, который сопоставляется со строкой
Целью такого сопоставления является определение соответствия введённого значения в строке шаблону для её валидации. Если значение не соответствует шаблону, то на форме отобразится текст ошибки с указанием формата ввода
Использование специальных символов
Регулярные выражения являются регистрозависимыми. Например, для заполнения полей в верхнем и нижнем регистре необходимо использовать регулярное выражение, которое будет проверять введённую информацию
Символы и метасимволы, используемые при формировании регулярного выражения
Символ
|
Значение |
|
Начало строки: означает, что входная строка должна начинаться с последующего символа после этого. Внутри [] также используется для исключения какого-либо символа |
|
Конец строки: означает, что все условия до этого символа будут являться конечным результатом входной строки, и после них ничего дальше нет |
|
Позволяет ввести один любой символ |
|
Означает, что предыдущее условие до данного символа должно встречаться один и более раз. Соответственно, может повторяться |
Позволяет ввести точку в строке |
|
|
Означает конец слова и позволяет настроить ввод определённого слова, которое указано метасимволом |
|
Исключает поиск по заданному слову после метасимвола |
|
Эквивалентен выражению [0-9] и позволяет ввести любую цифру |
|
Эквивалентен выражению [^0-9] и исключает возможность ввода цифр |
|
Эквивалентен выражению [[:word:]] и позволяет ввести знак подчеркивания «_», буквенный (латиница) или цифровой символы |
|
Эквивалентен выражению [^[:word:]] и исключает возможность ввода знака подчеркивания «_», буквенного (латиница) или цифрового символов |
|
Позволяет ввести пробел |
|
Исключает возможность ввода пробела |
|
Операция ИЛИ. Позволяет перечислить допустимые значения в строке: целые слова или несколько символов подряд. Должно выполниться условие слева или условие справа от этой операнды |
|
Используется для диапазона допустимых значений, внутри скобок указываем набор допустимых значений. Распространённые диапазоны: [А-Я] — все заглавные русские буквы, [А-Яа-яЁё] — все русские буквы, [a-zA-Z] — все буквы латиницы, [0-9] — любая цифра. Если необходимо указать узкий набор букв или символов, которые можно ввести в строку (например: буквы «абв»), то вносим это значение в квадратные скобки. Между перечисляемыми вариантами ввода не нужно использовать какие-либо разделители (пробел или запятая) |
|
Используется для обозначения группы символов. Внутри круглых скобок мы перечисляем доступные для фильтрации символы |
|
Дефис является единственным допустимым разделителем внутри регулярного выражения и позволяет задать диапазон. ВАЖНО: в диапазоне необходимо учитывать, что для начала и окончания указывается один символ. То есть [1-45] будет учитывать диапазон только между 1 и 4, а не между 1 и 45 |
?
|
Указывает на то, что предыдущий символов или выражение могут входить в строку 0 или 1 раз |
Регулярные выражения
Типовые регулярные выражения
№ | Название поля | Описание | Регулярное выражение | Текст ошибки |
ФИО | ||||
1 | Фамилия | Проверка корректности ввода фамилии без римских цифр | ^[А-ЯЁ][а-яё]{0,30}(( |-)([А-ЯЁ][а-яё]{0,30})){0,2}$ |
Допустимы русские буквы, пробел и дефис |
2 | Фамилия | Проверка корректности ввода фамилии с римскими цифрами | ^[А-ЯЁ][а-яё]{0,30}(( |-)([А-ЯЁ][а-яё]{0,30})){0,2}(( |-)[IVX]{0,6})?$ |
Допустимы русские буквы, римские цифры I, V, X, пробел и дефис |
3 | Имя | Проверка корректности ввода имени без римских цифр | ^[А-ЯЁ][а-яё]{0,30}(( |-)([А-ЯЁ][а-яё]{0,30})){0,2}$ |
Допустимы русские буквы, пробел и дефис |
4 | Имя | Проверка корректности ввода имени с римскими цифрами | ^[А-ЯЁ][а-яё]{0,30}(( |-)([А-ЯЁ][а-яё]{0,30})){0,2}(( |-)[IVX]{0,6})?$ |
Допустимы русские буквы, римские цифры I, V, X, пробел и дефис |
5 | Отчество | Проверка корректности ввода отчества | ^[А-ЯЁ][а-яё]{0,30}(( |-)([а-яё]{0,30})){0,2}$ |
Допустимы русские буквы, пробел и дефис |
Паспорт РФ | ||||
6 | Серия | Проверка поля на ввод 4 цифр | ^\d{4}$ |
Серия: должно быть 4 цифры |
7 | Номер | Проверка поля на ввод 6 цифр | ^\d{6}$ |
Номер: должно быть 6 цифр |
8 | Код подразделения | Проверка корректности ввода кода подразделения паспорта РФ | ^\d{3}\-\d{3}$ |
Код должен быть в формате 000-000 |
Свидетельство о рождении РФ | ||||
9 | Серия | Проверка поля на ввод 2 римских цифр, дефиса и двух заглавных русских букв | ^[IVXLCDM]{1,3}[-|s][А-ЯЁ]{2}$ |
Укажите 2 римские цифры, затем дефис и 2 русские буквы |
10 | Номер | Проверка поля на ввод 6 цифр | ^\d{6}$ |
Должно быть 6 цифр |
11 | Номер актовой записи | Проверка поля на ввод от 1 до 5 цифр или 21 цифры | ^\d{1,5}$|^\d{21}$ |
Должно быть от 1 до 5 цифр или 21 цифра |
Контактные данные | ||||
12 | Номер телефона | Ориентировано на российские мобильные телефоны, которые начинаются с «+7» или «8». Текст ошибки зависит от маски ввода | ^(8|(\+7)) \d{3} \d{3}\-\d{2}\-\d{2}$ |
Укажите номер без +7 Укажите номер без 8 |
13 | Электронная почта | Проверка корректности электронной почты | ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ |
Если есть ограничения по символам: Должно быть не больше 30 символов в формате example@electropochta.ru Если нет ограничений по символам: |
Другие поля | ||||
14 | Числовое значение | Проверка поля на ввод только целого числа | ^\d{1,}$ |
Допустимы только цифры |
15 | Числовое значение | Проверка поля на ввод вещественного числа с двумя знаками после разделителя | ^\d{1,}\.\d {2}$ |
Должна быть точка между целой и дробной частью. После точки — не больше двух цифр Должна быть запятая между целой и дробной частью. После запятой — не больше двух цифр |
16 | Проценты | Проверка на ввод процентов | ^\d{1,2}(\,\d{1,2})?$|^100$ |
Должно быть от 0 до 100. Между целой и дробной частью должна быть запятая. После запятой — не больше двух цифр |
17 | Язык | Проверка на ввод только русских букв | ^[а-яёА-ЯЁ]+$ |
Допустимы только русские буквы |
18 | Язык | Проверка на ввод только латинских букв | ^[a-zA-Z]+$ |
Допустимы только латинские буквы |
19 | Кадастровый номер | Проверка корректности кадастрового номера | ^\d{1,2}:\d{1,2}:\d{1,7}:\d{1,9}$ |
Текст подсказки: Например, 11:22:1234567:444 или 0:0:0:123 Текст ошибки: Укажите в формате 11:22:1234567:444 или 0:0:0:123 |
20 | Ссылка | Отрабатываются все домены, кроме .рф | ^[-a-zA-Z0-9@:%_+.~#?&\/=]{2,256}.[a-z]{2,4}(\/[-a-zA-Z0-9@:%_+.~#?&/=]*)?$ |
Допустимы латинские буквы, цифры и символы @ : % _ + . ~ # ? & / \ = |
Применение в конструкторе
Настройка валидации у компонента находится в блоке «Валидация»
Для того, чтобы использовать регулярное выражение для валидации, необходимо выбрать соответствующий тип валидации. Само регулярное выражение указывается в поле «Регулярное выражение». При указанном значении будет происходить сравнение введённого значения пользователем с регулярным выражением. При несовпадении значений на форме будет выводиться ошибка, текст для которой можно задать в поле «Сообщение об ошибке». Также необходимо указать момент, в который должна происходить валидация значением «При изменении значения в поле»