Regex comment interdire la répétition de caractères

julioma -  
 julioma -
Bonjour,
Dans un formulaire de contact, je souhaite interdire la répétition de plus de 2 lettres (ex aaa), dans le but d'éviter les erreurs.
voila ou j'en suis:
if(preg_match("#([a-zA-Z]){3,}",$_POST['nom']))

le problème c'est que cela m'interdis d'écrire plus de 3 lettres et non 3 lettres identiques
Voila, c'est tout...
Merci!

5 réponses

  1. Kaldoran Messages postés 146 Statut Membre 29
     
    Salut
    if(preg_match('/(.)(\1{3,})/',$text,$out))
     // Action a faire si il y a plus de 3 fois la même lettre 
    

    ->

    Ce preg_match detecte si il y a plus de 3 fois la meme lettre a la suite , ainsi les chaine comme :
    aaaa
    activeront le preg_match
    de meme si on fait quelque chose comme :
    aabbbbcc
    ici le BBBB sera detecté

    Normalement ceci devrais marcher ;)
    0
  2. julioma
     
    Merci por la réponse rapide ça fonctionne.
    Et si je veux également interdire les nombres et le caractères spéciaux du genre #@&"(>?;/.?...
    Pardonnez moi, je débute avec les regex et la je suis dans une tempête cérébral force 10.
    0
  3. Kaldoran Messages postés 146 Statut Membre 29
     
    Donc si je comprend bien vous voulez simplement autoriser les caractères [ majuscule et minuscule incluse ]
    si oui :

    if(preg_match('/([a-z])(\1{3,})/i',$text,$out))
    // Action a faire si il y a plus de 3 fois la même lettre

    Ainsi cela détectera les truc du genre :

    AAaa
    ou aaaa
    etc [ majuscule et minuscule comprise ]
    0
  4. julioma
     
    Oui, c'est ça, je ne veux autoriser que les lettres minuscules ou majuscules et faire en sorte qu'1 lettre ne puisse pas etre répétée 3 fois consécutivement.

    voici ce que j'ai écris:

    if(preg_match('/([a-zA-Z])(\1{2,})/i',$_POST['nom']))
     {
      echo '*vous avez mal renseigné le champ NOM!';
     }


    seulement, j'ai le même résultat qu'avec le premier code.
    ça ne passe pas si un caractère est répéter plus de 2 fois, par contre, on peu entrer des nombres et des #@&>?!...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. julioma
     
    Sinon que signifie le $text,$out?
    0