Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/02/2008, 16h17   #1
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Par défaut Vérification de regex

Salut ^^
J'ai voulu faire des regex pour vérifier que 4 numéros de tél soient corrects mais ça ne marche pas.
J'ai 3 numéros de téléphone à 10 chiffres (num_ext, num_port et num_fax) et un à 4 chiffres (num_int).
Donc je veux qu'on ne puisse écrire que le nombre de chiffres voulu, soit rien du tout.
Pourriez-vous me dire ce qui cloche svp ?
Merci ^^

Code :
1
2
3
4
5
6
7
if((preg_match('/[0-9]{4}/',$num_int) || preg_match('//',$num_int)) && 
	(preg_match('/[0-9]{10}/',$num_ext) || preg_match('//',$num_ext)) && 
	(preg_match('/[0-9]{10}/',$num_port) || preg_match('//',$num_port)) && 
	(preg_match('/[0-9]{10}/',$num_fax) || preg_match('//',$num_fax)))
	{
		// condition
	}
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h40   #2
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
Code php :
1
2
3
4
5
6
 
if(preg_match('`^(\d{4})$`', $num_int) && preg_match('`^(\d{10})$`', $num_ext) && 
preg_match('`^(\d{10})$`', $num_port) && preg_match('`^(\d{10})$`', $num_fax))
{
     //traitement
}

ou bien :
ou encore :
un trim() sur les variables pourra être nécessaire.
Code :
$num_int = trim($num_int);
....
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h45   #3
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Merci beaucoup ça marche très bien mais comment lui dire de n'autoriser en plus de ça que les blancs (soit 10 chiffres soit un blanc en fait) ?
Merci ^^
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 18h12   #4
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
Je te donne l'exemple pour le code à 4 chiffres :
Code php :
if(empty($num_int) || preg_match('`^(\d{4})$`', $num_int) )

Je commence par tester si la variable est vide car si cela est vrai les membres suivant ne seront pas testé (pour une condition en OU bien sûr) histoire de ne pas faire un preg_match pour rien.
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 18h17   #5
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Merci beaucoup !
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web