Bonjour,
Après une bonne prise de tête pour récupérer le texte (sur plusieurs lignes) contenu
dans une balise div, je me suis aperçu que le mode multiline ne fonctionnait pas
toujours notamment sous FF. Donc exit l'option m.
Suite à des recherches j'ai trouvé un code qui contourne le problème:
Le truc consiste à cibler tous les caractères exceptés ceux qui n'ont, à priori, aucune chance d'apparaitre
Code : Sélectionner tout - Visualiser dans une fenêtre à part var div_content = /<div class="maclasse">([^þ]*)<\/div>/i;
dans la chaine. ici en l'occurence: þ
Voici mon code:
Texte à matcher:
Code:<div class="maclasse">
contenu du div maclasse
</div>
<div class="uneclasse">
contenu du div uneclasse
</div>
Ce qui m'affiche le résultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var div_content = /<div class="maclasse">([^þ]*)<\/div>/i; var result = data.match(div_content); alert (result[1]);
c'est presque bon sauf qu'au lieu de s'arrêter au 1er </div> après <div class="maclasse">, ilcontenu du div maclasse
</div>
<div class="uneclasse">
contenu du div uneclasse
continue jusqu'au bout.
Y a t-il une équivalence de ungreedy (U) comme en PHP ?
Je sais qu'il y a l'option g, mais que je la mette ou pas le résultat est le même.
Quelqu'un pourrait-il maider ?
Merci
Partager