Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2011, 15h38   #1
Membre du Club
 
Michael Di Blasio
Étudiant
Inscription : mai 2008
Messages : 138
Détails du profil
Informations personnelles :
Nom : Michael Di Blasio

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 138
Points : 49
Points : 49
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 :
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
diblasio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 16h16   #2
Membre expérimenté
 
Inscription : janvier 2007
Messages : 616
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 616
Points : 549
Points : 549
Bonjour,
Essaie de remplacer # (dièse) par / (slash)
exemple

Code php :
  const EXPREG_STANDARD = "#[a-zA-Z0-9\-']$#";

devient

Code php :
  const EXPREG_STANDARD = "/[a-zA-Z0-9\-']$/";
kabkab est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/08/2011, 16h33   #3
Membre du Club
 
Michael Di Blasio
Étudiant
Inscription : mai 2008
Messages : 138
Détails du profil
Informations personnelles :
Nom : Michael Di Blasio

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 138
Points : 49
Points : 49
merci pour cette réponse mais j'ai déjà tenté de le faire

le résultat es le même
diblasio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h56.


 
 
 
 
Partenaires

Hébergement Web