2012-05-31 7 views
5

Ho usato la funzione di richiamata per telefono senza convalida da here.Convalida numero telefonico in php codeigniter

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; 
      } 
    } 
} 

Ma ora il problema è che non accetta telefono-no da paesi europei e in altre parti del mondo, che sono da 11 a 13 cifre. Qualcuno può fornirmi qualsiasi altra convalida per questo è universale per tutti i paesi?

risposta

3

dai uno sguardo a quanto segue. regex for international numbers. Dovrai controllare la regex multipla. Se il numero non corrisponde alla prima espressione regolare (numeri di telefono di US), quindi confrontarla con la regex internazionale. Se nessuno dei due match, fallire il test

+0

ya il link che hai fornito non si riferiva alla convalida di telefono internazionale, grazie per questo .Poi anche ho bisogno di sostituire reg -exp per separare tra i codici internazionali e il loro numero. –

14

Questo è sempre lavoro per me:

$this->form_validation->set_rules('mobile', 'Mobile Number ', 'required|regex_match[/^[0-9]{10}$/]'); //{10} for 10 digits number 
+1

questo è semplice..grazie –

+1

Non è lo stesso di numerico | max_length [10]? – Yash

+0

C'è più alternativa alternativa della soluzione. $ this-> form_validation-> set_rules ('mobile', 'Mobile Number', 'required | max_length [10] | min_length [10] | greater_than [0]'); Ma ha bisogno di una soluzione diversa. Puoi aiutarlo? È possibile rendere le prime 3 cifre limitate come 015, 016, 017, 018, 019 in un numero di 10 cifre? Tutto ciò di cui ho bisogno quando le prime 3 cifre dell'input non corrispondono alla convalida del formato, commette un errore. Grazie. – Shiplu

-1
$this->form_validation->set_rules('newphone','newphone', 
'required||matches[repassword]|max_length[10]|min_length[10]|xss_clean| 
callback_isphoneExist');