[英]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.