javascript正则表达式从包含脚本标记的字符串中获取url

时间:2014-09-02 20:50:46

标签: javascript regex

我试图弄清楚如何编写一个正则表达式,从这样的字符串中提供url:

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

这样可行,但我需要找到一种更简洁的方法:

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;

行动中: http://jsfiddle.net/zb3jh180/

解决方案,基于以下答案:

var regex = /<script.*?src="(.*?)"/gmi;
var url = regex.exec(_content);
script.src = url[1];

2 个答案:

答案 0 :(得分:5)

您可以使用此正则表达式:

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

<强> Working demo

或者类似的东西:

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

<强> Working demo

答案 1 :(得分:1)

更新了小提琴,让我知道这是不是你想要的。基本上只是创建一个捕获组:

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

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