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 :

R�cup�rer un span et son contenu, dans un string [RegExp]


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    186
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 186
    Par d�faut R�cup�rer un span et son contenu, dans un string
    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�res :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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>'

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    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.

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    pourquoi exec ?

    => match
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var uneChaine = '<span class="classeSpeciale">du contenu</span><span class="uneAutreClass">un autre contenu</span><div> encore du contenu</div>';
    var reg=/<span class="classeSpeciale">(.(?!(\/span>)))+<\/span>/
    alert(uneChaine.match(reg)[0])
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par d�faut
    T'as �a qui fonctionne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    oRegContact = new RegExp('(<span class="classeSpeciale">(?:.|\\n)*?</span>)',"gi");
    Par contre il ne faut pas que tu aies de <span> imbriqu� donc les regex sont assez limit�es dans ce contexte.

    Edit : il est pr�f�rable d'utiliser match comme y dit Spaffy.

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    186
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 186
    Par d�faut
    Merci pour vos r�ponses,

    La Regexp de Loceka est parfaite pour mon probl�me. Est ce qu'on pourrais m'expliquer la logique de cette regexp ?

  5. #5
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par d�faut
    En fait, par d�faut (/!\ le comportement varie selon l'impl�mentation du parseur de regex) le .* te prendre la plus grande cha�ne qui correspond � ta recherche.

    Donc la regex /.*a/ appliqu�e � la cha�ne "ababa" va te retourner "abab".

    Pour inverser ce comportement, et donc prendre la plus petite cha�ne correspondant � la recherche, il faut ajouter un ? derri�re l'op�rateur (+ ou *). Dans ce cas, la regex de tout � l'heure devient : /.*?a/ et appliqu�e � la m�me cha�ne elle retrournera "a".

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Lire seulement le son contenu dans une AVI
    Par pointer dans le forum Delphi
    R�ponses: 4
    Dernier message: 01/02/2007, 12h08
  2. R�ponses: 3
    Dernier message: 21/11/2006, 12h35
  3. Jouer un son contenu dans un TMemoryStream
    Par francky23012301 dans le forum Delphi
    R�ponses: 3
    Dernier message: 17/07/2006, 13h56
  4. R�ponses: 5
    Dernier message: 27/05/2006, 12h06
  5. Ouvrir une feuille excel et mettre son contenu dans VB6
    Par bb62 dans le forum VB 6 et ant�rieur
    R�ponses: 18
    Dernier message: 17/01/2006, 09h16

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