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

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. 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
    1. 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
      1. 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
        1. 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
          1. Sinon que signifie le $text,$out?
            0