Проверка номера телефона с использованием Zend Framwork
Я использую приведенный ниже код для подтверждения по номеру телефона в моем проекте,
$phone = new Zend_Form_Element_Text('phone', array(
'label' => $view->_('phone'),
'value' => '',
'class' => 'text-size text hastip',
'title' => $qtips_messages['key_phone'],
'required' => true,
'tabindex' => '13',
'validators' => array(
array('Digits', false, array(
'messages' => array(
'notDigits' => "Phone Invalid Digits, ex. 1234567890",
'digitsStringEmpty' => "",
))),
array('notEmpty', true, array(
'messages' => array(
'isEmpty' => 'Phone can\'t be empty'
)
)),
array('StringLength', false, array(10, 10, 'messages' => array(
'stringLengthInvalid' => "Phone Length Invalid entry",
'stringLengthTooShort' => "Phone Invalid Length , ex. 1234567890"
))),
),
'filters' => array('StringTrim'),
'decorators' => $this->requiredElementDecorators,
'description' => '<img src="'.$baseurl.'/images/star.png" alt="required" />',
'filters' => array('StringTrim')
));
$this->addElement($phone);
Это хорошо работает, когда поле пустое, недопустимое, длина. мое требование, телефонное поле должно принимать пробелы, такие как 123 456 7890
, Добрый совет по этому поводу.
1 ответ
Я не слишком уверен, как валидатор цифр обрабатывает пробелы, но я думаю, что это не позволит им (или вы не будете публиковать здесь). Поэтому вместо использования валидатора цифр измените его на валидатор регулярных выражений. Я не очень хорошо разбираюсь в регулярных выражениях, поэтому вместо того, чтобы дать вам выражение, я предлагаю вам взглянуть на следующую страницу, содержащую несколько выражений для телефонных номеров: Комплексное регулярное выражение для проверки номера телефона.
Добавление валидатора должно выглядеть примерно так:
array('regex', false, array('/^[0-9 ]+$/'))
Как я уже сказал, я плохо разбираюсь в регулярных выражениях, поэтому само регулярное выражение может быть не совсем точным, но добавление такого валидатора должно решить вашу проблему.