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   -
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.

<?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 !

2 réponses

JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Salut,

Essaye avec ça :
preg_match('#(^[a-zA-Z0-9éèêëáàâäúùûüñõãîìíÿ$£@ç.,:;!?¿_-]+)$#', $message);

0
danwolf7 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   5
 
Oh super, ça marche au poil ! Merci beaucoup !
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Cool, de rien.
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
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.
#(^[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éèêëáàâäúùûüñõãîìíÿ$£@ç.,:;!?¿_-]+)$#
0
danwolf7 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci pour l'explication complémentaire, ça me sera bien utile :)
0