IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Souci avec le preg_match [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Points : 92
    Points
    92
    Par défaut Souci avec le preg_match
    Bonjour a tous

    J'ai un petit souci avec le preg_match. quand je lance ma page php il m'arrive un message erreur me disant ceci

    Delimiter must not be alphanumeric or backslash

    Il me dis que j'ai un problème de délimiteur.

    Dans la classe que utilise pour tester ce que l'utilisateur insère dans les formulaire j'ai des constante avec plusieurs expression différente selon je que je veux tester. Elle on toute le caractère # comme délimiteur. Je ne comprend pas pourquoi cela ne marche pas


    voici une partie de ma classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    class Chaine{
        private $chaine;
        private $str_const;
        private $error_message;
        private $valide_message;
     
        /**
         * Constante permettant un controle standard d'une chaine
         * La chaine peux contenir uniquement des chiffre et lettre 
         * chiffre 0..9 lettre a..z et A..Z
         */
        const EXPREG_STANDARD = "#[a-zA-Z0-9\-']$#";
        /**
         * Constante permettant un controle pour une addresse email
         */
        const EXPREG_EMAIL = "#^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9]+$#";
        /**
         * Constante permet de controler que certain caractère ne sont pas dans la chaine
         * Les caract&egrave;re suivant sont controler: <  > _  \  .  =
         */
        const EXPREG_NOT_IN = "#[^<>_/\\.=]+$#";
    	 /**
         * Constante permet de controler que certain caract&egrave;re ne sont pas dans la chaine standards
         * Les caract&egrave;re suivant sont controler: <  > _  \   =
         */
        const EXPREG_NOT_IN_STANDARD_STRING = "#[<>_/\\=]+$#";
        /**
         * Constante permet de controler si la chaine est numerique
         */
        const EXPREG_NUMERIC = "#[0-9]$#";
        /**
         * Constante permet de controler si la variable action contient uniquement 1,2 ou 3
         */
        const EXPREG_NUMERIC_FOR_VAR_ACTION = "#1|2|3#";
         /**
         * Constante permet de controler si les varaible d'authentification sont formater correctement.
         * Les lettres a..z et A..Z, les chiffres 0..9 et les caracteres _ - . sont acceptes.
         */  
        const EXPREG_AUTH = "#^[a-zA-Z0-9_\-\.]+$#";
         /**
         * Constante permet de controler si la date est formater correctement.
         * Format de la date (jj-mm-aaaa).
         * @example 11-12-2011
         */ 
        const EXPREG_DATE = "#[0-9]{2}+\.[0-9]{2}+\.[0-9]{4}$#";
          /**
         * Constante permet de configurer la longueur min de la chaine pour Authentification.
         * Ceci pour le nom d'utilisateur et le mot de passe.
         */    
     
     
     public function __construct($chaine){
            $this->setChaine($chaine);
        }
        /**
         * Chaine::setChaine()
         * 
         * @param mixed $chaine
         * @return
         */
        function setChaine($value){
            $this->chaine = $value;
        }
        /**
         * Chaine::isValidFormat()
         * 
         * @return boolean true si la chaine est correct et false si la chaine ne correpond pas au crit&egrave;re;
         */
        public function isValidFormat(){
            //echo $this->getChaine()." ".$this->getConst()."<br />";
            return preg_match($this->getConst(),$this->getChaine());
        }
    L'erreur est dans la methode isValidFormat

    Merci d'avance pour toute l'aide que vous pourrez m'ammener

    Di Blasio Michael

  2. #2
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Essaie de remplacer # (dièse) par / (slash)
    exemple

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
      const EXPREG_STANDARD = "#[a-zA-Z0-9\-']$#";

    devient

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
      const EXPREG_STANDARD = "/[a-zA-Z0-9\-']$/";

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    merci pour cette réponse mais j'ai déjà tenté de le faire

    le résultat es le même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Souci avec preg_match
    Par Atmaelius dans le forum Langage
    Réponses: 3
    Dernier message: 06/08/2012, 18h23
  2. Réponses: 4
    Dernier message: 05/03/2010, 16h58
  3. [RegEx] soucis avec preg_match
    Par cassy dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2007, 15h33
  4. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 18h13
  5. Réponses: 4
    Dernier message: 16/02/2003, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo