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 :

ereg() qui ne fonctionne pas


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Pepito2030
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Par défaut ereg() qui ne fonctionne pas
    Bonjour,

    Je n'arrive pas à faire fonctionner la fonction ereg() correctement.

    J'ai une valeur $val qui est composée soit de chiffre soit de lettre. J'aimerais tester si cette valeur est correcte ou non en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $val = 'pepito2030';
    
    if(!ereg('[a-z0-9]',$val)){
    echo 'ca marche pas';	
    }
    else{
    echo 'cest bon !';
    }
    
    Dans ce cas ca fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $val = 'pepito***2030';
    
    if(!ereg('[a-z0-9]',$val)){
    echo 'ca marche pas';	
    }
    else{
    echo 'cest bon !';
    }
    
    Dans ce cas ca ne fonctionne pas. Il devrait me dire 'ca marche pas' du fait que l'* n'est ni un chiffre ni une lettre
    [a-z0-9] ca ne concerne bien que les chiffres et les lettres, pas les * ?

    Pouvez vous me dire d'ou viens le probleme svp ?

    Merci !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Votre expression détecte les mots qui contiennent au moins une lettre ou un chiffre et non les mots qui ne contiennent que des lettres ou des chiffres.

    Deux solutions :

    • Dire que l'expression régulière commence au début de la chaine et fini à la fin de la chaine. Effectivement, dans la chaine

      votre expression régulière détecte toutes les sous chaines suivantes : "p", "e", encore "p", "i", "t", "o", "2", "0", "3" et encore "0". Vous pouvez modifier votre expression régulière par :

      où ^ signifie "commence par", $ signifie "finit par", [:alnum:] est strictement équivalent à [a-zA-Z0-9] et le plus signifie "au moins un".

    • Utiliser la négation : La chaine contient un caractère non alphanumérique :

      Où le ^ utilisé entre crochet à un sens différent que lorsqu'il n'est pas utilisé entre crochet et signifie "Ne contient pas les caractères du crochet".

  3. #3
    Membre averti Avatar de Pepito2030
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Par défaut
    ok, merci pour votre aide, je ne connaissais pas [:alnum:] .

    J'ai bien fait de demander sur le forum, merci !

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

Discussions similaires

  1. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08
  2. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

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