Войти

Что такое регулярные выражения и как их использовать в ВКУ

Общая информация

Регулярное выражение — это последовательность специальных символов, формирующих паттерн или шаблон, который сопоставляется со строкой

Целью такого сопоставления является определение соответствия введённого значения в строке шаблону для её валидации. Если значение не соответствует шаблону, то на форме отобразится текст ошибки с указанием формата ввода

Использование специальных символов

Регулярные выражения являются регистрозависимыми. Например, для заполнения полей в верхнем и нижнем регистре необходимо использовать регулярное выражение, которое будет проверять введённую информацию

Символы и метасимволы, используемые при формировании регулярного выражения

Символ

Значение

Начало строки: означает, что входная строка должна начинаться с последующего символа после этого. Внутри [] также используется для исключения какого-либо символа

Конец строки: означает, что все условия до этого символа будут являться конечным результатом входной строки, и после них ничего дальше нет

Позволяет ввести один любой символ

Означает, что предыдущее условие до данного символа должно встречаться один и более раз. Соответственно, может повторяться

Позволяет ввести точку в строке

Означает конец слова и позволяет настроить ввод определённого слова, которое указано метасимволом

Исключает поиск по заданному слову после метасимвола

Эквивалентен выражению [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

Если нет ограничений по символам:
Укажите в формате example@electropochta.ru

Другие поля
14 Числовое значение Проверка поля на ввод только целого числа ^\d{1,}$ Допустимы только цифры
15 Числовое значение Проверка поля на ввод вещественного числа с двумя знаками после разделителя ^\d{1,}\.\d {2}$
^\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@:%_+.~#?&/=]*)?$ Допустимы латинские буквы, цифры и символы @ : % _ + . ~ # ? & / \ =

Применение в конструкторе

Настройка валидации у компонента находится в блоке «Валидация»

регулярки.png

Для того, чтобы использовать регулярное выражение для валидации, необходимо выбрать соответствующий тип валидации. Само регулярное выражение указывается в поле «Регулярное выражение». При указанном значении будет происходить сравнение введённого значения пользователем с регулярным выражением. При несовпадении значений на форме будет выводиться ошибка, текст для которой можно задать в поле «Сообщение об ошибке». Также необходимо указать момент, в который должна происходить валидация значением «При изменении значения в поле»

Авторизуйтесь, чтобы оставить комментарий к статье