Hoe kan ik een telefoonnummer valideren met PHP?

Hoe u een telefoonnummer valideert met php


Antwoord 1, autoriteit 100%

Aangezien telefoonnummers aan een patroon moeten voldoen, kunt u reguliere expressies gebruiken om het ingevoerde telefoonnummer te vergelijken met het patroon dat u definieert in regexp.

php heeft zowel ereg als preg_match() functies. Ik raad aan om preg_match() te gebruiken omdat er meer documentatie is voor deze stijl van regex.

Een voorbeeld

$phone = '000-0000-0000';
if(preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/", $phone)) {
  // $phone is valid
}

Antwoord 2, autoriteit 90%

Zo vind ik geldige 10-cijferige Amerikaanse telefoonnummers. Op dit moment ga ik ervan uit dat de gebruiker mijn inhoud wil, dus de nummers zelf zijn vertrouwd. Ik gebruik in een app die uiteindelijk een sms-bericht verzendt, dus ik wil gewoon de onbewerkte cijfers, wat er ook gebeurt. Opmaak kan altijd later worden toegevoegd

//eliminate every char except 0-9
$justNums = preg_replace("/[^0-9]/", '', $string);
//eliminate leading 1 if its there
if (strlen($justNums) == 11) $justNums = preg_replace("/^1/", '',$justNums);
//if we have 10 digits left, it's probably valid.
if (strlen($justNums) == 10) $isPhoneNum = true;

Bewerken: ik moest dit uiteindelijk overzetten naar Java, als iemand interesse heeft. Het werkt bij elke toetsaanslag, dus ik heb geprobeerd het redelijk licht te houden:

boolean isPhoneNum = false;
if (str.length() >= 10 && str.length() <= 14 ) { 
  //14: (###) ###-####
  //eliminate every char except 0-9
  str = str.replaceAll("[^0-9]", "");
  //remove leading 1 if it's there
  if (str.length() == 11) str = str.replaceAll("^1", "");
  isPhoneNum = str.length() == 10;
}
Log.d("ISPHONENUM", String.valueOf(isPhoneNum));

Antwoord 3, autoriteit 55%

Ik ben sterk afhankelijk van de getalnotaties die je wilt ondersteunen, en hoe streng je nummergroepering, het gebruik van witruimte en andere scheidingstekens enz. wilt afdwingen….

Bekijk deze vergelijkbare vraagom wat ideeën.

Dan is er E.164wat een standaard nummeringsaanbeveling is van ITU-T

Other episodes