Estoy tratando de descubrir cómo escribir una expresión regular que proporcione la URL de una cadena como esta:

'<script type="text/javascript" src="http://chrismills.la/test.js"></script>';

Esto funciona, pero necesito encontrar una forma más limpia de hacerlo:

var url = '';
_content.replace(/src ?= ?"([^"]+)"/gi, function(res) {
    url = res;
    url = url.replace('src=','');
    url = url.replace(/['"]+/g, '')
    url = url.replace(/["']+/g, '')
});
script.src = url;

En acción: http://jsfiddle.net/zb3jh180/

SOLUCIÓN, basada en la respuesta a continuación:

var regex = /<script.*?src="(.*?)"/gmi;
var url = regex.exec(_content);
script.src = url[1];
1
user1572796 3 sep. 2014 a las 00:50

2 respuestas

La mejor respuesta

Puedes usar esta expresión regular:

<script.*?src="(.*?)"

Demostración de trabajo

O también algo como:

<script.*?"(http.*?)"

Demostración de trabajo

6
Federico Piazza 2 sep. 2014 a las 20:54

Se actualizó el violín, avíseme si esto es lo que está buscando. Básicamente solo creando un grupo de captura:

            var srcRegEx = /src="(.*?)"/g;
            var source = srcRegEx.exec(_content);
            script.src = source[1];

http://jsfiddle.net/zb3jh180/1/

1
tcmurphy 2 sep. 2014 a las 22:03