A voir également:
- [{{preg_replace('/welcome/', 'accueil', preg_replace('/verify/', 'verifier', $activationlink))}}]
- Vérifier un numéro de téléphone - Meilleures réponses
- Verifier numero telephone - Meilleures réponses
- Vérification numéro de téléphone - Form PHP ✓ - Forum - PHP
- Vérification numéro de téléphone - Forum - Vos droits sur internet
- Trouver le propriétaire d'un numéro ✓ - Forum - Mobile
- D'ou vient ce numéro de téléphone ✓ - Forum - Réseaux mobiles
- D'ou vient ce numéro de téléphone??? - Forum - Mobile
7 réponses
Ssylvainsab
- Messages postés
- 2884
- Date d'inscription
- dimanche 30 juillet 2006
- Statut
- Modérateur
- Dernière intervention
- 15 août 2020
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
Benjamin
Une petite fonction qui permet de formater un numéro de téléphone français (à 10 chiffres).
<?php
function formatFrenchPhoneNumber($phoneNumber, $international = false){
//Supprimer tous les caractères qui ne sont pas des chiffres
$phoneNumber = preg_replace('/[^0-9]+/', '', $phoneNumber);
//Garder les 9 derniers chiffres
$phoneNumber = substr($phoneNumber, -9);
//On ajoute +33 si la variable $international vaut true et 0 dans tous les autres cas
$motif = $international ? '+33 (\1) \2 \3 \4 \5' : '0\1 \2 \3 \4 \5';
$phoneNumber = preg_replace('/(\d{1})(\d{2})(\d{2})(\d{2})(\d{2})/', $motif, $phoneNumber);
return $phoneNumber;
}
$tel1 = "0144035000";
$tel2 = "01.44.03.50.00";
$tel3 = "01-44-03-50-00";
$tel4 = "Voici mon numéro : 01-44-03-50-00";
echo formatFrenchPhoneNumber($tel1); // affiche "01 44 03 50 00"
echo formatFrenchPhoneNumber($tel2); // affiche "01 44 03 50 00"
echo formatFrenchPhoneNumber($tel3); // affiche "01 44 03 50 00"
echo formatFrenchPhoneNumber($tel4); // affiche "01 44 03 50 00"
echo formatFrenchPhoneNumber($tel1, true); // affiche "+33 (1) 44 03 50 00"
echo formatFrenchPhoneNumber($tel2, true); // affiche "+33 (1) 44 03 50 00"
echo formatFrenchPhoneNumber($tel3, true); // affiche "+33 (1) 44 03 50 00"
echo formatFrenchPhoneNumber($tel4, true); // affiche "+33 (1) 44 03 50 00"
?>
<?php
function formatFrenchPhoneNumber($phoneNumber, $international = false){
//Supprimer tous les caractères qui ne sont pas des chiffres
$phoneNumber = preg_replace('/[^0-9]+/', '', $phoneNumber);
//Garder les 9 derniers chiffres
$phoneNumber = substr($phoneNumber, -9);
//On ajoute +33 si la variable $international vaut true et 0 dans tous les autres cas
$motif = $international ? '+33 (\1) \2 \3 \4 \5' : '0\1 \2 \3 \4 \5';
$phoneNumber = preg_replace('/(\d{1})(\d{2})(\d{2})(\d{2})(\d{2})/', $motif, $phoneNumber);
return $phoneNumber;
}
$tel1 = "0144035000";
$tel2 = "01.44.03.50.00";
$tel3 = "01-44-03-50-00";
$tel4 = "Voici mon numéro : 01-44-03-50-00";
echo formatFrenchPhoneNumber($tel1); // affiche "01 44 03 50 00"
echo formatFrenchPhoneNumber($tel2); // affiche "01 44 03 50 00"
echo formatFrenchPhoneNumber($tel3); // affiche "01 44 03 50 00"
echo formatFrenchPhoneNumber($tel4); // affiche "01 44 03 50 00"
echo formatFrenchPhoneNumber($tel1, true); // affiche "+33 (1) 44 03 50 00"
echo formatFrenchPhoneNumber($tel2, true); // affiche "+33 (1) 44 03 50 00"
echo formatFrenchPhoneNumber($tel3, true); // affiche "+33 (1) 44 03 50 00"
echo formatFrenchPhoneNumber($tel4, true); // affiche "+33 (1) 44 03 50 00"
?>
Ssylvainsab
- Messages postés
- 2884
- Date d'inscription
- dimanche 30 juillet 2006
- Statut
- Modérateur
- Dernière intervention
- 15 août 2020
Salut greg !
C'est entre accolades que tu détermines les nombre de caractères requis :
if(preg_match('`[0-9]{10}`',$numero_de_telephone)) echo "C'est bon";
Donc il faut changer {10} en {8,12}
a plus
--
Sylvain
C'est entre accolades que tu détermines les nombre de caractères requis :
if(preg_match('`[0-9]{10}`',$numero_de_telephone)) echo "C'est bon";
Donc il faut changer {10} en {8,12}
a plus
--
Sylvain
Alain42
Bonsoir,
Par REGEX vas voir les site: www.siteduzero.com expliquations parfaites pour ton cas.
@lain
Par REGEX vas voir les site: www.siteduzero.com expliquations parfaites pour ton cas.
@lain
Mysterious_fea
- Messages postés
- 401
- Date d'inscription
- vendredi 29 juin 2007
- Statut
- Membre
- Dernière intervention
- 23 mars 2013
Thank you !
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){