|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : février 2007 Messages : 187 ![]() |
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 :
var uneChaine = '<span class="classeSpeciale">du contenu</span><span class="uneAutreClass">un autre contenu</span><div> encore du contenu</div>'; 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 :
Merci d'avance pour vos réponses. |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
pourquoi exec ?
=> match Code :
__________________
Ma page 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 ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 450 ![]() |
T'as ça qui fonctionne :
Code :
oRegContact = new RegExp('(<span class="classeSpeciale">(?:.|\\n)*?</span>)',"gi"); Edit : il est préférable d'utiliser match comme y dit Spaffy. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : février 2007 Messages : 187 ![]() |
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 ? |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 450 ![]() |
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". |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com