Bonjour,
j'essaye depuis quelques temps (sans succès donc..) de trouver le bon motif REGEX pour remplacer du texte dans de l'HTML sans toucher aux balises HTML...
Voici ce que j'ai de mieux pour le moment :avec : var pattern = '('+quoi+')';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <script type="text/javascript"> <!-- function surbrillance(ou, quoi){ var pattern = '('+quoi+')(?=[^>]*<)'; // manque le n°5 //var pattern = '('+quoi+')(?=.<)'; // manque le n°2,3 et 5 //var pattern = '('+quoi+')'; // casse les balises HTML var regex = new RegExp(pattern, "gi"); //alert(ou.innerHTML); var avant = ou.innerHTML; ou.innerHTML = ou.innerHTML.replace(regex, '<span style="background-color:yellow;">$1</span>'); alert(avant+"\r\n"+ou.innerHTML); } //--> </script> </head> <body onload="surbrillance(document.getElementById('zone'), 'tout')"> <div id="zone">bonjour 1 tout <span class="tout">le monde</span> 2 tout <div><hr /><img src="" alt="" /> 3&4 touttout <img src="/images/tout.gif" alt="" /><hr /></div> 5 tout</div> </body> </html>
j'obtiens :-> balises HTML cassées !bonjour 1 tout tout">le monde 2 tout
3&4 touttout tout.gif" alt="">
5 tout
avec : var pattern = '('+quoi+')(?=.<)';
j'obtiens :-> 2 spans au lieu 5 !bonjour 1 tout le monde 2 tout
3 4 touttout
5 tout
avec : var pattern = '('+quoi+')(?=[^>]*<)';
j'obtiens :-> 4 spans sur 5...bonjour 1 tout le monde 2 tout
3 4 touttout
5 tout
Quelqu'un pourrait-il m'aider un peu...
Merci d'avance![]()
Partager