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 -
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! :)
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
-
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. -
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...