2009-11-19 5 views
1

Я подумываю добавить некоторую проверку/фильтрацию в поле номера телефона моего приложения Zend Framework. Не уверен, что это то, что я должен делать или нет.Проверка/проверка номера телефона с использованием формы jQuery или Zend?

Я думал, что пользователям будет полезно иметь такую ​​функцию, чтобы я мог применять конкретный формат отображения. Я не уверен, что форматирование номера телефона должно храниться в базе данных или когда оно извлекается из базы данных. Я не хочу быть слишком строгим, потому что это не так важно. Я просто хотел, чтобы половина людей не входила 123.456.7890 в качестве формата номера телефона, а другая половина вводила (123) 456-7890 в качестве другого формата. Я хочу, чтобы список телефонных номеров выглядел последовательным. Может быть, я должен использовать javascript, чтобы помочь пользователю ввести их номер? Возможно, есть плагин jQuery, который уже делает это, и я могу интегрировать его с моей формой Zend?

Как вы думаете?

ответ

2

Вы все еще хотите обеспечить проверку на задней части, как проверка Javascript можно обойти легко. Это моя проверка плагин, который заставляет +1.1234567890:

class App_Validate_Phone extends Zend_Validate_Abstract 
{ 
    const NOT_VALID = 'phoneInvalid'; 

    protected $_messageTemplates = array(
     self::NOT_VALID => "Phone number '%value%' must be in the format +COUNTRYCODE.PHONENUMBER. Example: +1.4071234567" 
    ); 

    public function isValid($value) 
    { 
     $this->_setValue($value); 

     if (!preg_match('/^\+([0-9]+)\.([0-9]+)$/',$value)) { 
      $this->_error(self::NOT_VALID); 
      return false; 
     } 

     return true; 
    } 
} 

Если Google телефона проверки регулярных выражений вы можете найти любое количество проверочных регулярных выражений, которые вы можете заменить в preg_match() для ваших конкретных потребностей.

0

Вам не нужно создавать специальные валидаторы для телефонов. У Zend есть предложение для валидатора телефона, использующего локализацию. Пока вы не готовы, вы можете использовать валидатор Regex:

//Add element for phoneNumber1 
$this->addElement('text', 'phoneNumber1', array(
    'label'  => 'Primary Phone Number', 
    'required' => false, 
)); 
$phone1 = $this->getElement('phoneNumber1'); 
$phone1->addValidator('regex', false, array('pattern' => '^[2-9][0-9]{2}-[0-9]{3}-[0-9{4}$', 'messages' => 'Enter a valid Phone Number')); 
Смежные вопросы