PHP preg_match et REGEX ne marche pas comme voulu

Résolu
danwolf7 Messages postés 58 Statut Membre -  
danwolf7 Messages postés 58 Statut Membre -
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

  1. JooS Messages postés 2705 Statut Membre 228
     
    Salut,

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

    0
  2. danwolf7 Messages postés 58 Statut Membre 5
     
    Oh super, ça marche au poil ! Merci beaucoup !
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      Cool, de rien.
      0
    2. JooS Messages postés 2705 Statut Membre 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
    3. danwolf7 Messages postés 58 Statut Membre 5
       
      Merci pour l'explication complémentaire, ça me sera bien utile :)
      0