Я использовал функцию обратного вызова для телефона без проверки.
function valid_phone_number_or_empty($value) { $value = trim($value); if ($value == '') { return TRUE; } else { if (preg_match('/^\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}$/', $value)) { return preg_replace('/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/', '($1) $2-$3', $value); } else { return FALSE; } } }
Но теперь проблема в том, что она не принимает телефон-нет от европейских стран и других частей мира, которые составляют от 11 до 13 цифр. Может ли кто-нибудь предоставить мне любую другую валидацию, которая является универсальной для всех стран?
взгляните на следующее. regex для международных номеров . Вам нужно будет проверить наличие нескольких регулярных выражений. Если номер не соответствует первому регулярному выражению (номера телефонов), проверьте его на международном регулярном выражении. Если ни совпадение, ни испытание
Это всегда работает для меня:
$this->form_validation->set_rules('mobile', 'Mobile Number ', 'required|regex_match[/^[0-9]{10}$/]'); //{10} for 10 digits number
$this->form_validation->set_rules('newphone','newphone', 'required||matches[repassword]|max_length[10]|min_length[10]|xss_clean| callback_isphoneExist');