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.. でそれを使用してコールバック関数を作成できますか? または、独自の正規表現を作成しますか? 任意の入力を歓迎します

4

2 に答える 2

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;
}
于 2013-02-28T03:46:58.757 に答える
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;
    }
  }
于 2013-02-28T03:53:14.677 に答える