Page 1 sur 1

Validation numéro de téléphone

Posté : 21 oct. 2006, 22:09
par Sarawak
Bonsoir,

Voilà, je poursuis dans la mise à jour de formulaires existant, et je souhaiterais ajouter un contrôle sur les numéro de téléphone saisis.

J'ai ajouté un test permettant de vérifier si la zone est numérique et de longueur 10 carctères
  $format_tel = "#^\d{10}$#"; 
if (!(preg_match($format_tel,$tel)))
Cepedant, je souhaiterais pouvoir autoriser ces formes de saisie :
01 01 01 01 01
ou
01.01.01.01.01

Existe t'il une solution ?

Merci

Posté : 21 oct. 2006, 23:24
par Truc
Salut,
Je suis pas un spécialiste de regex mais ceci devrait fonctionner :
$format_tel = "#^(\d{2}[ \.]){4}\d{2}$#"; 
un groupe de 4 fois 2 chiffres suivis d'un espace ou d'un point => (\d{2}[ \.]){4}
puis un dernier goupe de 2 chiffres => \d{2}

Posté : 22 oct. 2006, 06:24
par Ripat
Salut,
Je suis pas un spécialiste de regex mais ceci devrait fonctionner :
$format_tel = "#^(\d{2}[ \.]){4}\d{2}$#"; 
Pas mal pour un non spécialiste auto-déclaré! :wink:

Je rendrais juste la classe de caractères optionnelle pour valider les numéros "pleins".

^(\d{2}[ .]?){4}\d{2}$

En passant, il n'est pas indispensable d'échapper le point dans une classe de caractères. Les seuls caractères spéciaux et méta caractères qui doivent être échappés sont: les ^ \ ] -. Et encore, si les deux derniers sont situés juste derrière les crochets de la classe, ça passe: [[abcd] et [abcd[] sont tous deux valides et équivalent à [ab\[cd]

Sinon, l'alternative classique est de d'abord supprimer tous les caractères indésirables avec un str_replace() et ensuite tester avec un simple is_numeric(). Les avantages de cette deuxième méthode sont qu'elle sera sans doute plus rapide à l'exécution et ensuite, si tu mets le tél. en bdd, tous tes n° seront normalisés.

Posté : 22 oct. 2006, 09:35
par Sarawak
Merci à tous les deux !!

Cela fonctionne parfaitement.
Je garde sous le coude, le str_replace() car pour le moment cette info n'est pas stockée en base.

Je cloture la sujet

Re: Validation numéro de téléphone

Posté : 21 mars 2013, 00:35
par anas
$Syntaxe='#^0[5,6]([0-9]{2}){3}$#';

Re: Validation numéro de téléphone

Posté : 21 mars 2013, 12:13
par cachouet
tu peux aussi faire en html dans ce genre la :
<label for = "Tel">Telephone : </label><input type = "tel" name = "Tel" id = "Tel" pattern="^[0-9]{10}$"/>

Re: Validation numéro de téléphone

Posté : 22 mars 2013, 01:02
par moogli
Le sujet n'a que six ans ....