Vérification numéro de téléphone - Form PHP
Résolu
Mysterious_fea
Messages postés
401
Date d'inscription
Statut
Membre
Dernière intervention
-
Azote22 -
Azote22 -
Bonjour,
Comment vérifier qu'un champ est numérique et qu'il fait exactement 10 chiffres (pour un numéro de téléphone) en PHP SVP ?
Merci
a+
Comment vérifier qu'un champ est numérique et qu'il fait exactement 10 chiffres (pour un numéro de téléphone) en PHP SVP ?
Merci
a+
A voir également:
- Vérifier un numéro de téléphone gratuit
- Téléphone - Guide
- Voici ce que signifie l'icône N sur votre téléphone - et pourquoi vous devriez l'activer - Guide
- Méfiez-vous si ce petit point de couleur s'allume dans un coin de l'écran de votre téléphone - Accueil - Protection
- Regle telephone - Guide
- Vue satellite en direct gratuit de ma maison - Guide
7 réponses
Salut !
https://www.php.net/preg_match
--
Sylvain
if(preg_match('`[0-9]{10}`',$numero_de_telephone));echo "C'est bon";
https://www.php.net/preg_match
--
Sylvain
if(preg_match(''[0-9]{10}'',$nb_value)){
$nb_valid++;
}else{
$nb_invalid++;
}
m'incrémente $nb_valid au lieu de l'autre, alors que ca taille est de 13 et non 10.
Ceci m'amène à la question : a-t-il testé seulement les 10 premiers digits, ou {10} veut-il dire "au moins 10" et non "exactement 10" ?
Plus ennuyeux : exactement les memes résultats en utilisant :
preg_match(''[0-9]{10,13}'',$nb_value))
- une lettre puis au moins 10 chiffres
- au moins 10 chiffres puis une lettre
- une lettre suivi d'au moins 10 chiffres suivi d'une lettre suivie de 1789 chiffres.
- etc.
Donc il fallait vérifier que la chaine commençait ET finissait obligatoirement par des chiffres ET re-spécifier sa taille, ce qui donne :
et là, on a bien un chaine commençant obligatoirement par 9 à 13 chiffres (^[0-9]{9,13}), suivie d'un dernier chiffre ([0-9]$), sous entendu : une chaine composée obligatoirement de 10 à 14 chiffres...
preg_match("regex", $string); : Cette fonction php permet de vérifier grâce au REGEX la correspondance avec la chaine de caractére $string.
La traduction du REGEX expliqué par Poulpos :
-'cela ne teste QUE les 10 premiers digits' [qui doivent être des chiffres compris entre 0 et 9]
Ensuite tout simplement la fonction :
strlen($string); : Retourne le nombre de caractère dans la chaine de caractère ( espace compris).
voilà donc ta condition écrite :
if( preg_match(''[0-9]{10}'',$nb_value) && strlen($nb_value) == 10){
$nb_valid++;
}else{
$nb_invalid++;
}
Réponse à un topic de 2008 ! en 2012 ! :) J'aime ! (oukilé le pouce ! :p)
Comme ceci :
if( preg_match('/[0-9]{10}/',$nb_value) && strlen($nb_value) == 10){