Найти в Дзене

Валидация свойств при оформлении заказа в Битрикс

Оглавление

В Битриксе есть возможность задать условия проверки вводимых пользователем данных в поля заказа. Для этих целей есть несколько встроенных опций. Наиболее простые опции помогают проверить введенные данные на минимальное и максимальное количество символов. А для более сложных проверок есть специальное поле для использования регулярных выражений для того, чтобы можно было проверять введенные пользователем данные на корректность заполненности поля. Работает данный функционал по следующему принципу: 1) если настроен AJAX режим – при потере фокуса на поле производится проверка валидности ввода, 2) без AJAX режима – проверка производится перед сохранением формы, и елси поле не прошло валидацию, то возвращается ошибка.

Настроить регулярные выражения можно в админской панели на странице списка свойств Магазин -> Настройки -> Свойства заказа -> Список свойств. Далее выбираем для редактирования нужное поле и в нижней части формы редактирования находим поле “Регулярное выражение для проверки”. В это поле нужно поместить строку регулярного выражения по аналогии как в PHP функции preg_match.

Ниже приведу регулярные выражения для проверки популярных полей заказа.

Поле ФИО

Ниболее популярны варианты чтобы в поле ФИО обязательно присутстствовали три слова, или как минимум два.

Выражение для проврки на обязательное наличие трех слов в поле

^\D{3,}\s\D{3,}\s\D{3,}$

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

^\D{3,}\s\D{3,}(\s\D{3,})?$

Поле Телефон

Тут мы будем проверять поле телефон по схеме: начинается с +7, 7 или 8, и далее содержит 10 числовых символов не считая пробелов, скобок, тире и прочих символов (прочие символы мы просто пропускаем и не учитываем в регулярном выражении, нам важно, чтобы было наличие нужно количества числовых символов).

^(\+7|7|8)+((\D{0,2})(\d)){10,10}$

Поле Email

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9-]+.+.[a-zA-Z]{2,4}$

Пишите в комментариях какие еще регулярные выражения по вашему мнению трубеются в работе, я добавлю их в пост.