2013-02-28 5 views
0

Я использую библиотеку проверки подлинности codeigniter ... для международного номера я пытаюсь принять числовые цифры в 15 цифр. Кроме того, пустое пространство разрешено ... но ниже по какой-то причине не работает. ..Это не принимает пробельные ...Международный номер телефона Валидация с пробелом

  if(isset($data['perfume_int_contact'])) 
      { 
      //$this->form_validation->set_rules('phone_int_area_code','Contact Phone Number','trim|required|numeric'); 

      $this->form_validation->set_rules('phone_int_first','Contact Phone Number','trim|required|numeric');       

я изгоняются иметь возможность войти как: 1234 1234 1234 45678 Должен ли я сделать свой собственный класс проверки только для этого? или я могу сделать функцию обратного вызова, используя ее в set_rules ..? Или создать собственное регулярное выражение? Любые входы оценили

ответ

1
if (isset($data['perfume_int_contact'])) { 
    $this->form_validation->set_rules('phone_int_first', 'Contact Phone Number', 'trim|numeric|required|callback_phone_check'); 
} 

function phone_check($phone_number) 
{ 
    $regex = '/^\d{3}\s\d{3}\s\d{4}\s\d{3}$/'; // validates 123 123 1234 123 
    if (!preg_match($regex, $phone_number)) { 
     $this->form_validation->set_message('phone_check', 'Phone Number not valid.'); 
     return false; 
    } 
    return true; 
} 
+0

Благодаря это очень хороший материал для некоторых CI новичков вроде меня ... Thankyou – ricardo

+0

всего лишь маленький вопрос ... в чем смысл/im '. Что такое im? – ricardo

+0

@ricardo 'i' = ignorecase и' m' = multiline. Вы можете просто использовать '/^\ d {3} \ s \ d {3} \ s \ d {4} \ s \ d {3} $ /' –

1

// в правилах валидации форм

$this->form_validation->set_rules('phone_int_first', 'Contact Phone Number', 'trim|required|max_length[15]|callback_checkPhone'); 

// функция обратного вызова

function checkPhone($phoneNumber) { 
    $output = preg_match('/[^0-9\s]/', $phoneNumber); 
    if (empty($output)) { 
     return TRUE; 
    } else { 
     $this->form_validation->set_message('checkPhone', 'This phone number conatins only numbers & white space'); 
     return FALSE; 
    } 
    } 
+0

Спасибо, но каким-то образом regaex не работает .. если я вхожу например: 123 123 1234 123 дает еще ошибку .. – ricardo

Смежные вопросы