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 :

[RegExp] Extraire le texte entre 2 balises


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de d1g-2-d1g
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 127
    Par défaut [RegExp] Extraire le texte entre 2 balises
    Bonjour,

    je cherche comment en Javascript je peux extraire, d'une chaine de caractère, une autre chaine comprise entre deux balise que je défini. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dsqlkqsdcqsd MABALISEDEDEBUT Le texte que je veux récupérer MABALISEDEFIN svervevz ertzr ...
    Moi je veux récupérer le texte compris entre "MABALISEDEDEBUT" et "MABALISEDEFIN", c'est à dire : " Le texte que je veux récupérer "

    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var text = "";
     
    var oRegExp = new RegExp("MABALISEDEDEBUT(.*)MABALISEDEFIN");
    alert(oRegExp.Pattern);
     
    if (oRegExp.test(response))
    {
    	var tableau = oRegExp.exec(response);
    	text = tableau[1];
    }
    alert(text);
    ... mais ca ne fonctionne pas, le premier "alert" me renvoi "null"...

    Merci d'avance de votre aide.

  2. #2
    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
    bonjour,

    voilà un début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function test()
    {
     var texte="bla bgla bla [g]bla b4545lag GG bla[/g] bla bla [g]gggg[/g] bla bla";
     var exp = /((\[g\]){1}(\w*|(\w*\s*)*)(\[\/g\]){1})/gi;
     
     alert(texte.match(exp));
     
    }
    une restriction : ta chaine ne doit comporter que des lettres (sans accent !) ou des nombres : [a-z ; A-Z; 0-9]

    Je vais essayer d'améliorer ça

  3. #3
    Membre confirmé Avatar de d1g-2-d1g
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 127
    Par défaut
    Apparement ma regexp fonctionne sauf si il y a des retours à la ligne entre les deux balises, ce qui est génant dans mon cas...

  4. #4
    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
    la chaîne à tester provient d'un textarea ?

  5. #5
    Membre confirmé Avatar de d1g-2-d1g
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 127
    Par défaut
    Nan d'une XMLHttpRequest.

  6. #6
    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
    à tout hasard, si tu veux enlever les sauts de lignes et autre caractères blancs :

    texte = texte.replace(/\s/gi," ");
    Je n'ai pas l'habitude d'ajax, mais si ta requête renvoit une chaîne de caractères (texte), cela marchera. Ensuite tu appliques l'expressiion régulière.

Discussions similaires

  1. Réponses: 8
    Dernier message: 02/02/2014, 09h30
  2. Extraire un texte entre balises
    Par battl14 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/06/2009, 09h41
  3. [RegEx] Extraire un texte entres balises html ?
    Par booraq dans le forum Langage
    Réponses: 2
    Dernier message: 01/07/2007, 15h56
  4. Regexp: extraire du texte entre deux balises
    Par moook dans le forum Langage
    Réponses: 11
    Dernier message: 19/06/2007, 18h08

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