[Résolu]preg_match

preg_match [Résolu] - PHP - Programmation

Marsh Posté le 18-04-2008 à 10:06:22    

Bonjour à tous,
Je crois que ça doit être parce que c'est vendredi et que je n'arrive pas à ouvrire les yeux mais...
J'utilise ceci pour contrôler le nouveau mdp entré par les utilisateurs:

Code :
  1. $verifpass = preg_match('|^[a-zA-Z0-9_-]{6,}+$|', $newPassword);


et j'aurai voulu ajouter comme caractère permi le !.
Comment est-ce que je fais cela?
Merci bcp pour votre aide...  :)


Message édité par fgiuliano le 18-04-2008 à 11:29:58
Reply

Marsh Posté le 18-04-2008 à 10:06:22   

Reply

Marsh Posté le 18-04-2008 à 10:30:12    

Non :-( ça ne marche pas comme ça non plus...

Reply

Marsh Posté le 18-04-2008 à 10:53:05    

ta regex elle marche pas et ça n'a strictement rien a voir avec le ! :o
la fin est pas bonne, tu ne peux pas avoir deux quantificateurs ({6,} et + ) qui se suivent. Le plus est donc inutile !
Pour rajouter le ! il suffira alors de faire:

^[a-zA-Z0-9_-!]{6,}$


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 18-04-2008 à 11:00:16    

Ben en tout cas, jusqu'à aujourd'hui, elle paraissait fonctionner ma règle...  
Je ne sais pas comment alors...
Mais en la modifiant comme tu proposes, il me met une erreur:

Code :
  1. Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 13 in ...


Savez-vous pourquoi?

Reply

Marsh Posté le 18-04-2008 à 11:23:34    

parce qu'il faut backslasher le - quand on veut spécifier le caractère sinon celui ci decrit un classe de caractère(comme a-z).

^[a-zA-Z0-9_\-!]{6,}$

 

edit: a-zA-Z peut d'ailleurs s'écrire: A-z ça revient au même
et pit a-zA-Z0-9_ en fait c'est \w


Message édité par anapajari le 18-04-2008 à 11:26:38

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 18-04-2008 à 11:29:42    

Ok. ben je te remercie pour ton aide!
ça fonctionne parfaitement merci  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed