简体   繁体   English

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

[英]javascript regex to get url from string containing script tag

I am trying to figure out how to write a regex that would provide the url from a string like this:我试图弄清楚如何编写一个正则表达式,它可以从这样的字符串中提供 url:

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

This works, but I need to find a cleaner way to do this:这可行,但我需要找到一种更清洁的方法来做到这一点:

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;

In action: http://jsfiddle.net/zb3jh180/在行动: http://jsfiddle.net/zb3jh180/

SOLUTION, based on answer below:解决方案,基于以下答案:

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

You can use this regex:您可以使用此正则表达式:

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

Working demo工作演示

Or also something like:或者也像:

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

Working demo工作演示

Updated the fiddle, let me know if this was what you are going for.更新了小提琴,让我知道这是否是你想要的。 Basically just creating a capture group:基本上只是创建一个捕获组:

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

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

If you want to match a string of script tags containing "http://chrismills.la" in the src attribute, you can use this Regex:如果要匹配 src 属性中包含“http://chrismills.la”的脚本标签字符串,可以使用这个正则表达式:

<script.*?src="(http:\/\/chrismills\.la.*?)"*<\/script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM