[RESOLU] Regex : plusieurs lettres + 1 chiffres facultatif

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Regex : plusieurs lettres + 1 chiffres facultatif

Re: Regex : plusieurs lettres + 1 chiffres facultatif

par Jeaf16 » 13 mai 2014, 11:37

Merci réponse parfaite !

Re: Regex : plusieurs lettres + 1 chiffres facultatif

par wng » 12 mai 2014, 22:59

Voila pour toi :
$string = "s1fds0sdfds"; // faux
$string = "sdfsddf"; // ok
$string = "sdfd5sdf"; // ok
$string = "5sdfds"; // ok

if(preg_match("/^([a-z]{0,}[0-9]{0,1}[a-z]{0,})$/i", $string)) print "ok";
Je décompose la regex pour toi :

^ : indique le début de la phrase pour être plus restrictif
( ... ) : pour définir une chaine de caractère
[a-z]{0,} : indique que l'on cherche possiblement des lettre ( 0 ou plus )en début de la chaine de caractère
[0-9]{0,1} : indique que l'on cherche zéro ou un chiffre ( PS pas tester mais normalement [0-9]? fonctionne aussi )
[a-z]{0,} : on continue après la possibilité du chiffre ...
$ : et on indique la fin de ligne

Voila en espérant avoir répondue à ta demande :)

EDIT : La même chose si tu souhaite valider plusieurs chiffres :
"/^([a-z]{0,}[0-9]{0,1}[a-z]{0,})+$/i"
à savoir que si tu souhaite inclure les espaces il te faut :
"/^([a-z ]{0,}[0-9]{0,1}[a-z ]{0,})+$/i"

Regex : plusieurs lettres + 1 chiffres facultatif

par Jeaf16 » 12 mai 2014, 21:17

Bonjour

Je souhaiterai connaitre la regex pour avoir plusieurs lettres et un chiffre facultatif (0, un ou plusieurs) ?
Ca n'a pas l'air compliqué mais je bloque car les chiffres peuvent être placés n'importe où...

Merci
Fabien