Regex tout sauf un groupe de caractères

Résolu
snipchain Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
snipchain Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous! :)

J'essai de trouver une regex qui me renverrait un message d erreur si un groupe de caractères est utilisé de facon abusive (permission d'un seul de ces caractères à la fois)...

exemple de ce qui ne devrait pas passer: 'mon ch$$$at joue' ou 'mon $$$chat joue' ou 'mon chat$$$ joue' ou 'mon ch&#§at joue' ou 'mon chat&#§ joue' ou 'mon &#§chat joue'

exemple de ce qui pourrait passer: 'mon ch$at joue' ou 'mon $chat joue' ou 'mon chat$ joue' ou 'mon ch&at joue' ou 'mon chat& joue' ou 'mon &chat joue'

j'ai tenté un
if (!preg_match('#.*[^(\'-\?\!\(\)&\|@\#§<>\^\{\}\[\]\$\*%\+\/\\€)+].*#i', $value)){echo 'incorrect';}
mais sans résultat... :s

quelqu'un a t il une idée? merci d'avance! :)

2 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
si je comprends bien ta demande, ton soucis est de spécifier le nombre de fois ou le caractère est présent dans la string, avec un groupement ou tu peux l'avoir 1 seul fois (genre ton $) et un autre groupement ou tu ne peux pas l'avoir du tout (genre ton §)
Si oui, il faut utiliser la syntaxe suivante :
if (preg_match('#([\$]{2,})|([§]{1,})#i', $value)){echo 'incorrect';} 

Ici, c'est pour avoir le droit d'avoir 1 seul $ (à la suite) et aucun § dans la string contenue dans $value.
0
snipchain Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse Zep! en fait, c était le fait d avoir plus d'un caractère de suite appartenant à ce groupe qui me posait souci mais j me rend compte que ca aurait donné une regex un peu folle donc j ai fait différemment...
0