javascript正则表达式url替换

javascript regex url replacement

本文关键字:替换 url 正则表达式 javascript      更新时间:2023-09-26

我需要使用javascript将&wmode=transparent附加到我博客上的所有youtube iframe嵌入中。

所以。。。

<iframe src="http://www.youtube.com/embed/7jW_0IQWOQg?rel=0"></frame>

需要更改为:

<iframe src="http://www.youtube.com/embed/7jW_0IQWOQg?rel=0&wmode=transparent"></frame>

所以我想我需要匹配一个youtube嵌入url,然后将其附加到url的末尾。。。如何匹配url的末尾?

编辑:

我使用的是nodejs,所以没有DOM。

我试着查看博客中一篇文章的全部内容。因此,该字符串将包含文本/图像html,并可能包含多个youtube嵌入。

这样的东西怎么样:

var iframes = document.getElementsByTagName("iframe"),
    i,
    len,
    src;
for (i = 0, len = iframes.length; i < len; i++) {
    src = iframes[i].src;
    if (src.indexOf("http://www.youtube.com/embed") > -1) {
        iframes[i].src = src + "&wmode=transparent";
    }
}

如果您无法访问DOM(即,您正在搜索String),则可以使用以下内容:

str = str.replace(/http:'/'/www.youtube.com'/embed'/(.*?)"><'/iframe>/g, function (a, b) {
    return ['http://www.youtube.com/embed/', b, '&wmode=transparent"></iframe>'].join("");
});

下面是一个工作示例。

在Github上签出uri.js项目:https://github.com/medialize/URI.js和http://medialize.github.com/URI.js/和http://medialize.github.com/URI.js/docs.html#accessors-搜索

好吧,要检查它是否是YouTube URL,你可以简单地检查其中是否有"YouTube"。如果有,你可以附加你的参数。不确定您所说的"字符串中可能有多个URL"是什么意思。但是,可能还没有任何参数,因此需要使用?而不是&。在这种情况下,只需使用indexOf来检查您应该使用什么。

var iframes = document.getElementsByTagName("iframe");
for(var i = 0; i < iframes ; i++) {
    var iframe = iframes [i];
    if (iframe.src.indexOf("youtube") >= 0)
        iframe.src += "&wmode=transparent";
}