PHP preg_match et REGEX ne marche pas comme voulu
Résolu
danwolf7
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
danwolf7 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
danwolf7 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé la fonction suivante dans le but de traquer n'importe où dans le string $message les caractères non présent dans le REGEX.
Le scripte repère effectivement des caractères interdits mais uniquement lorsqu'ils sont seuls.
Pour illustrer, admettons que le caractère = est interdit. Si j'écris juste "=", il me retourne l'erreur comme je l'ai demandé. Mais si j'écris par exemple "quelque=chose", le scripte ne repère pas le = en cavale.
Pourriez vous m'aider à trouver l'erreur ?
Merci d'avance !
J'ai créé la fonction suivante dans le but de traquer n'importe où dans le string $message les caractères non présent dans le REGEX.
<?php $message = $_POST["message"]; if(preg_match("/[a-zA-Z0-9éèêëáàâäúùûüñõãîìíÿ$£@ç.,:;!?¿_-]/", $message)){ echo "OK : $message"; } else { echo "Fail"; } ?>
Le scripte repère effectivement des caractères interdits mais uniquement lorsqu'ils sont seuls.
Pour illustrer, admettons que le caractère = est interdit. Si j'écris juste "=", il me retourne l'erreur comme je l'ai demandé. Mais si j'écris par exemple "quelque=chose", le scripte ne repère pas le = en cavale.
Pourriez vous m'aider à trouver l'erreur ?
Merci d'avance !
A voir également:
- Regex ne commence pas par
- Je commence la nuit et je termine le matin ✓ - Forum Loisirs / Divertissements
- Regex negation chaine caractère - Forum Programmation
- Bonjour je cherche la réponse à la devinette svp ✓ - Forum Loisirs / Divertissements
- Expressions régulières "ne contient pas ..." ✓ - Forum Programmation
- Musique qui commence doucement puis accélère techno - Forum Musique / Radio / Clip
2 réponses
Oh super, ça marche au poil ! Merci beaucoup !
Le "^" : Début de l'expréssion.
Le "$" : Fin de l'expréssion.
Le "+" : 1 ou plusieurs fois.
[ ] : Définition d'une classe.
Expression représentant une chaîne de 1 caractère et qui commence par un caractère appartenant a la classe.
Expression représentant une chaîne de 1 caractère et qui commence et se termine par un caractère appartenant a la classe.
Expression représentant une chaîne de 1 ou plusieurs caractères, qui commence et se termine par un caractère appartenant a la classe.
Le "$" : Fin de l'expréssion.
Le "+" : 1 ou plusieurs fois.
[ ] : Définition d'une classe.
Expression représentant une chaîne de 1 caractère et qui commence par un caractère appartenant a la classe.
#(^[a-zA-Z0-9éèêëáàâäúùûüñõãîìíÿ$£@ç.,:;!?¿_-])#
Expression représentant une chaîne de 1 caractère et qui commence et se termine par un caractère appartenant a la classe.
#(^[a-zA-Z0-9éèêëáàâäúùûüñõãîìíÿ$£@ç.,:;!?¿_-])$#
Expression représentant une chaîne de 1 ou plusieurs caractères, qui commence et se termine par un caractère appartenant a la classe.
#(^[a-zA-Z0-9éèêëáàâäúùûüñõãîìíÿ$£@ç.,:;!?¿_-]+)$#