繁体   English   中英

使用JS或jQuery替换部分URL

[英]Use JS or jQuery to replace part of a URL

好的,我不确定我怎么了,但是我正在尝试查找和替换多个URL的一部分。

基本上,我有一些URL正在动态添加到我的网站中。 所有人都有“ newsLink”类,其中一些链接会拉起google.docs查看器,我需要删除它。

到目前为止,这是我的代码:

$('a.newsLink').each(function(){
var lnk = $('a.newsLink').attr();
var re = new RegExp("http://docs.google.com/viewer?url=","g");
lnk.replace(re, "");
});

链接看起来像:

<a href='http://docs.google.com/viewer?url=myHomePage.pdf' class='newsLink' target='_blank'>

我想删除第一部分,以便链接看起来像:

<a href='http://myHomePage.pdf' class='newsLink' target='_blank'>

无论如何,到目前为止没有运气...任何人都可以帮忙。

首先,您将再次在循环内获取所有链接。 然后,您尝试获取一个属性,但是没有说哪个。 最后,您尝试使用replace而不将返回值分配给任何值。

这是您的代码应为:

$('a.newsLink').each(function(){
    var lnk = this.href;
    this.href = lnk.replace("http://docs.google.com/viewer?url=", "");
});

注意:我假设您希望链接变成例如myHomePage.pdf ,而没有协议。

您想要的正则表达式是。

http:\/\/docs\.google\.com\/viewer\?url=(.+)

首先,这会转义所有正则表达式字符。 在这种情况下\\. ? 我们正在使用与每个字符( (.+) )匹配的组来捕获文档。

到目前为止,我们的代码看起来像这样。

$('a.newsLink').each(function(){
    var lnk = this.href;
    var re = /http:\/\/docs\.google\.com\/viewer\?url=(.+)/g
    this.href = lnk.replace(re, "");
});

现在我们得到了这样的团体。

var match = re.exec(lnk);

这将返回一个匹配数组。 现在,我们的文档存储在match[1] 这样我们的最终代码就出来了。

$('a.newsLink').each(function(){
    var lnk = this.href;
    var re = /http:\/\/docs\.google\.com\/viewer\?url=(.+)/g
    this.href = (re.exec(lnk))[1];
});

暂无
暂无

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

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