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

JavaScript Discussion :

Expression régulière incorrecte


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut Expression régulière incorrecte
    Bonjour,

    Je viens d'écrire l'expression régulière littérale suivante :

    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
     
    <script type="text/javascript">
    var motif = /d{2,5}/;
    var chaine = "test";
     
     
    var resultat = motif.test(chaine);
     
    if (resultat === true)
    	{
    	document.write("Cette chaine contient la caractère d entre 2 et 5 fois !");
    	}															  
    else
    	{
    	document.write("Caractère \"d\" moins de 2 fois ou plus de 5 fois");
    	}
    </script>
    Cette dernière fonctionne mais pas exactement comme je le voudrais;

    - la condition de l'expression 2,5 fonctionne bien pour 2 (lettre d répétée au-mois 2 fois) mais pas pour 5 lettre repetée au plus 5 fois.

    - Les lettres doivent dans la condition ci-dessus êtes "suivies" comme ceci :
    "test ddd" comment faire pour que la condition soit true même de cette façon "dtedstd" ?

    - Question bête : Comment afficher résolu dans l'intitulé du message ?

    Merci d'avance pour vos lumières

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    passe par match();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t=chaine.match(motif);
    if(t.length >2 && t.length <6){
    ...
    }

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par javatwister Voir le message
    passe par match();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t=chaine.match(motif);
    if(t.length >2 && t.length <6){
    ...
    }
    +1

    Ce motif :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var motif = /d{2,5}/
    veut que tu recherches entre 2 et 5 "d" successifs.

    Par ailleurs tu as fait un erreur dans ton test :
    = : affectation
    == : égalité
    === : équivalence

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var motif = /p/gi;
    var chaine = "klmlpmptp";
     
    var resultat = chaine.match(motif);
     
    if (resultat.length) >=2 && resultat.length)<=5)
    	{
    	document.write("Cette chaine contient la caractère \"d\" entre 2 et 5 fois !");
    	}															  
    else
    	{
    	document.write("Caractère \"d\" moins de 2 fois ou plus de 5 fois");
    	}

    - Question bête : Comment afficher résolu dans l'intitulé du message ?
    Tu as le bouton en bas de la page ou ouvre le menu "outils de la discussion"

  4. #4
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Salut,

    Je pense qu'il faudrait plutôt utiliser exec() qui retourne un tableau des valeurs trouvées.
    [edit] Tiens c'est marrant j'ai pas trouvé match dans mes recherches!

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut
    Oui il existe plusieurs méthodes de recherche de correspondance :

    match();
    search;
    split();
    replace();
    test();

    Test me semble le plus simple mais lequel me conseillez-vous en général ?

    Cordialement,

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

Discussions similaires

  1. [RegEx] Expression régulière incorrecte
    Par Freygolow dans le forum Langage
    Réponses: 8
    Dernier message: 29/05/2008, 11h57
  2. Expression réguliére
    Par Mad_Max dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 16/09/2003, 18h17
  3. [expression régulière] mon cerveau fait des noeuds..
    Par nawac dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 27/05/2003, 10h06
  4. Expressions réguliéres
    Par Tooms dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2002, 18h42
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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