14 votes

Comment faire en sorte que regex corresponde à plusieurs balises de script?

Je tente de renvoyer le contenu de tous les balises `` dans un corps de texte. Actuellement, j'utilise l'expression suivante, mais elle ne capture que le contenu de la première balise `<script>` et ignore les suivantes. </p> <p>Voici un exemple du code HTML :</p> <pre><code> <script type="text/javascript"> alert('1');

Test

alert('2');

Mon regex ressemble à ceci :

//scripttext contient l'exemple
re = /]*>([\s\S]*?)<\/script>/gm;
var scripts  = re.exec(scripttext);

Lorsque je lance ceci sur IE6, cela renvoie 2 correspondances. La première contenant la balise `` complète, la deuxième contenant alert('1').</p> <p>Lorsque je le lance sur <a href="http://www.pagecolumn.com/tool/regtest.htm" rel="noreferrer">http://www.pagecolumn.com/tool/regtest.htm</a>, cela me donne 2 résultats, chacun contenant uniquement les balises `<script>`.</p></x-turndown>

0voto

tommy Points 1

Essayez ceci

pour chaque (var x dans document.getElementsByTagName('script');
     if (x && x.innerHTML){
          var votreRegex = /http:\/\/\.*\.com/g;
          var correspondances = votreRegex.exec(x.innerHTML);
             if (correspondances){
          votre code
 }}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X