|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() ![]() Geoffray Inscription : août 2002 Messages : 137 ![]() |
Bonjour,
J'essaie de vérifier au travers d'une expression régulière que la longueur d'une chaîne de caractère soit comprise entre 6 et 20 caractères et qu'elle contienne au moins 1 chiffre, peu importe sa position. La chaîne est susceptible de contenir n'importe quels autres caractères. Je tente donc de chercher la présence d'un ou plusieurs digits éventuellement entourés de n'importe quels autres caractères, mais cette solution ne semble pas fonctionner. Code :
echo preg_match('`^(.*\d+.*){6,20}$`', $variable) Avez-vous une meilleure idée ? Merci, Bonne journée |
|
00
|
|
|
#2 | ||
|
Membre confirmé
![]() pablo duranConsultant informatique Inscription : décembre 2009 Messages : 148 ![]() |
tu peux essayer ça :
Code php :
je n'ai testé que quelques cas mais en principe ça doit marcher |
||
|
10
|
|
|
#3 | ||
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
J'ai essayé comme ceci :
Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() ![]() Geoffray Inscription : août 2002 Messages : 137 ![]() |
Merci, l'expression de polkduran est parfaite !
Pour être pointilleux, on pourrait juste signaler l'inutilité de l'option i (insensitive) dans ce cas précis. Merci, Bonne journée |
|
00
|
|
|
#5 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
faut aussi éviter de mettre l’opérateur d’exécution comme délimiteur pour les regex
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#6 | ||
|
Membre confirmé
![]() pablo duranConsultant informatique Inscription : décembre 2009 Messages : 148 ![]() |
c'est aussi une solution mais tu peux mettre toutes tes conditions dans une seule car comme tu l'as mis tu n'as ton "else" que si longueur de ta chaîne est supérieure à 20
Code php :
à toi de voir si tu mets tout dans la regex comme celle que j'ai mise dans ma première réponse ou avec ta solution. l'avantage avec cette solution est que tu vérifie d'abord la longueur et si elle n'est pas bonne tu n'exécutes pas la regex qui est plus lourde que des simples comparaisons de chaînes car ça ne charge pas le moteur des regex |
||
|
00
|
|
|
#7 | |||
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Citation:
En effet, je voyais cela comme ça afin d’éviter de lancer la regex si la première condition n'était pas remplie. |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com