Estoy tratando de devolver el contenido de cualquier etiqueta en un cuerpo de texto. Actualmente estoy usando la siguiente expresión, pero solo captura el contenido de la primera etiqueta e ignora cualquier otra después de eso.¿Cómo obtener regex para que coincida con varias etiquetas de script?
He aquí una muestra de la html:
<script type="text/javascript">
alert('1');
</script>
<div>Test</div>
<script type="text/javascript">
alert('2');
</script>
Mi expresiones regulares se ve así:
//scripttext contains the sample
re = /<script\b[^>]*>([\s\S]*?)<\/script>/gm;
var scripts = re.exec(scripttext);
Cuando ejecuto esto en IE6, devuelve 2 partidos. El primero que contiene la etiqueta completa, el segundo que contiene la alerta ('1').
Cuando lo ejecuto en http://www.pagecolumn.com/tool/regtest.htm me da 2 resultados, cada uno con las etiquetas de script solamente.
¿En realidad escribiendo la expresión regular en javascript? ¿Puedes incluir el código correspondiente? – cdm9002
Usando RegexBuddy 3.2.1, esto funciona bien. Captura el contenido de ambas etiquetas. – Phoexo
Estoy usando/gm. Modifiqué la expresión regular un poco. Ahora devuelve 2 resultados, cada uno con una etiqueta de script pero incluye el html. \t . ¡Maldita sea, frustrado de nuevo!'); ' – Svante
@Svante ¿qué tal? :) – kangax