Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour une regex

    22 avril 2006 à 15:59:45

    Bonjour à tous,

    Voilà deux regex qui ne fonctionnent pas comme je l'aimerais malgré tous mes efforts...

    1) Placée dans un if, cette regex doit me permettre de vérifier que $_POST['nom'] ne contient ni grosmot1, ni grosmot2, et donc retourner TRUE.

    preg_match("![^grosmot1|grosmot2]!i", $_POST['nom'])


    2) Placée dans un if, cette seconde regex doit me permettre de vérifier que $_POST['nom'] contient uniquement des lettres de a à z et de A à Z mais aucun chiffre, et mesure entre 4 et 12 caractères de long.

      preg_match("![a-zA-Z^0-9]{4,12}!", $_POST['nom'])


    Pourriez-vous m'aider à corriger celà? Je vous en remercie d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      22 avril 2006 à 16:24:10

      Ajoute une variable qui contiendra la réponse de preg_match();

      Je t'invite également à aller voir la doc php sur cette fonction ;)
      • Partager sur Facebook
      • Partager sur Twitter
        22 avril 2006 à 16:51:48

        Merci pour ta réponse madyn,

        Ajouter une variable ne change rien, cette regex est placée directement dans le if !

        C'est au niveau de la regex même que je coince, je fais certainement des erreurs de metacaractères mais j'ai beau chercher je m'esquinte les neurones sans resultat...
        • Partager sur Facebook
        • Partager sur Twitter
          22 avril 2006 à 16:53:06

          Bon, je vais t'engueuler d'entrée : on n'utilise pas le ! comme délimiteur de regex. Ce n'est pas parce que le site du zéro le propose que c'est une bonne idée.
          C'est une très mauvaise idée -> voir lien dans ma sign.

          Cette mise au point étant faites :
          1) liste de mots, comme ça :
          $mots='machin|chose|truc|muche';
          if(preg_match('`('.$mots.')`i', $_POST['nom']))
          {
          echo 'Espèce d\'enfoiré tu utilises un gros mot';
          }
          else
          {
          // on fait autre chose
          }


          2) rien que des lettres
          preg_match('`^[a-z]{4,12}$`i', $_POST['nom'])
          • Partager sur Facebook
          • Partager sur Twitter
            22 avril 2006 à 17:12:42

            Ca fonctionne, je te remercie !

            Tant que tu y est, peux tu justifier la raison pour laquelle il ne faut pas utiliser les !?
            • Partager sur Facebook
            • Partager sur Twitter
              22 avril 2006 à 17:53:31

              Citation : maleykith

              Ca fonctionne, je te remercie !

              Tant que tu y est, peux tu justifier la raison pour laquelle il ne faut pas utiliser les !?


              Je vais t'engueler une deuxième fois ! :p
              Les liens sont dans ma signature, je te l'ai dit dans ma réponse précédente ;)
              • Partager sur Facebook
              • Partager sur Twitter

              Besoin d'aide pour une regex

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown