Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide pour une regexp

recupéré un element <span> dans une chaine de caractère

Sujet résolu
Anonyme
    10 février 2011 à 15:22:56

    Bonjour je cherche à construire une Regexp qui me permettrai de récupérer un élément <span> et son contenu dans une chaîne de caractères, mais uniquement cet élément <span>.
    Je m'explique :

    La chaine de caractère :

    var uneChaine = '<span class="classeSpeciale">du contenu</span><span class="uneAutreClass">un autre contenu</span><div> encore du contenu</div>';
    


    Je voudrais récupérer uniquement '<span class="classeSpeciale">du contenu</span>';

    Voilà ce que j'ai fait mais cela me récupère '<span class="classeSpeciale">du contenu</span><span class="uneAutreClass">un autre contenu</span>'
    var oRegContact = new RegExp('<span class="classeSpeciale">(.|\\s)*</span>',"gi");
    oRegContact.exec(uneChaine);
    


    Si quelqu'un a une solution, je suis preneur.
    Merci d'avance pour vos réponses.
    • Partager sur Facebook
    • Partager sur Twitter
      10 février 2011 à 20:20:43

      Ajoute un "?" après le quantifieur "*" et tant qu'à faire remplace (.|\\s)* par [\\S\\s]*.

      Et tant qu'à faire, utilise la notation littérale directement, c'plus joli :

      var oRegContact = /<span class="classeSpeciale">[\S\s]*?</span>/gi
      

      Et comme ça pas besoin d'échapper les backslashes.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        11 février 2011 à 16:14:32

        Merci pour ta réponse cela fonctionne parfaitement. En revanche je ne peux pas (je me trompes peut être) utiliser la notion littéraire puisque "classeSpeciale" doit être dynamique.
        • Partager sur Facebook
        • Partager sur Twitter
          11 février 2011 à 19:21:17

          En effet, si classeSpeciale est au final une variable, il te faut la notation via le constructeur. ;)
          • Partager sur Facebook
          • Partager sur Twitter

          Aide pour une regexp

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown