FormIt: валидация телефона

Добавляем валидатор для проверки соответствия введенного номера телефона регулярному выражению. Валидатор (сниппет phoneValidate):

<?php
$success = preg_match('#^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$#', $value);
if($success === 1) {
    return true;
} else {
    $validator->addError($key, 'Введите правильный номер телефона!');
    return false;
}
?>

Поле с регуляркой:

<input name="phone" type="text" placeholder="+7 999 000-00-00" pattern="^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$" value="[[!+fi.phone]]" required>

Регулярка взята с Хабра

Для использования валидатора добавьте в вызов FormIt параметр customValidators=`phoneValidate` и добавьте проверку :phoneValidate

[[!FormIt?
  &hooks=`email`
  &customValidators=`phoneValidate`
  &validate=`phone:required:phoneValidate`
  // необходимые вам параметры
]]

На главную