Les expressions régulières(regex)

Fermé
jalalnet Messages postés 293 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 30 juillet 2023 - 25 oct. 2010 à 00:25
 A.Nonymous - 30 oct. 2010 à 03:32
Bonjour,
j'essaye d 'appliqué un règle sur un champs de mon formulaire avec le regex (preg_match)
voila ce que j'ai comme code:

if ( preg_match("#[A-Z0-9]#", "$trimed_titre")) 
 { exécute requête d'ajout dans la BDD}
else 
{ echo "msg"}

bon avec se code j'aimerai que l ajout passe si l utilisateur saisie que des lettre MAJ +numéro sinon affiche le msg d'erreur

alors lorsque j'essaye d'inséré une phrase minuscule ou des caractère spéciaux cela affiche erreur , mais si je varié les minscule+caractère spéciaux avec un lettre MAJ ou Num
l 'ajout passe

comment évité se pb....

2 réponses

Normal.
#[A-Z0-9]# signifie "Recherche d'un caractère, compris entre A-Z ou 0 à 9"
#^([A-Z0-9]+)$# signifie "Recherche d'une chaine comprenant au moins 1 caractère, et constitué de caractères de A à Z ou de 0 à 9, et qui n'ai rient d'autre ni avant, ni après"

"+" => "Au moins 1 caractère de ce type"
"^" => "Rien d'autre avant"
"$" => "Rien d'autre après"

D'ailleurs, si une longueur fixe est attendue :
#^([A-Z0-9]{20})$#
0
jalalnet Messages postés 293 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 30 juillet 2023 10
Modifié par jalalnet le 25/10/2010 à 14:32
voila
les resulat de votre code #^([A-Z])#
dgAHHDH => passe pas
fgfhhg => passe pas
DHFad => passe
DJGJFG => passe
==> le début de la chaine doit etre un MAJ ce que j'appris sur le "^"
mais lorsque j'utilise le "$"
#^([A-Z])$#
tous les forumules passe pas
0
A voir la 1ère expression régulière, je pensais que seules les majuscules comptaient ...
Celle-ci accepte également les minuscules
#^([a-zA-Z0-9]+)$#

Concernant #^([A-Z])$#, cette expression s'attend à trouver 1 seul caractère, pas plus, pas moins. Ce n'est pas celle que j'ai donnée
0