Les expressions régulières(regex)

jalalnet Messages postés 350 Date d'inscription   Statut Membre Dernière intervention   -  
 A.Nonymous -
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

  1. A.Nonymous
     
    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
    1. jalalnet Messages postés 350 Date d'inscription   Statut Membre Dernière intervention   10
       
      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
  2. A.Nonymous
     
    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