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

Fermé
julioma - 26 juil. 2013 à 19:00
 julioma - 27 juil. 2013 à 14:17
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!



A voir également:

5 réponses

Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 29
Modifié par Kaldoran le 26/07/2013 à 19:07
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
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
Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 29
26 juil. 2013 à 19:42
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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