如何将外部链接与javascript匹配(但忽略子域)?
我使用以下(jquery)选择器查找外部链接 这会起作用,并忽略所有包含如何将外部链接与javascript匹配(但忽略子域)?,javascript,jquery,Javascript,Jquery,我使用以下(jquery)选择器查找外部链接 这会起作用,并忽略所有包含location.hostname(例如www.domain.com)的链接 我的问题是,如何扩展它,同时忽略站点子域的链接?(如new.domain.com) 如果你知道你的子域相对于你的站点的主机名是什么样子的,你可以用它来做一个正则表达式。例如,如果主机名始终为x.y.z,则可以分割主机名的最后两部分,并忽略主机名以相同方式结束的任何锚 var parts = location.hostname.split('.'),
location.hostname
(例如www.domain.com)的链接
我的问题是,如何扩展它,同时忽略站点子域的链接?(如new.domain.com)
如果你知道你的子域相对于你的站点的主机名是什么样子的,你可以用它来做一个正则表达式。例如,如果主机名始终为x.y.z,则可以分割主机名的最后两部分,并忽略主机名以相同方式结束的任何锚
var parts = location.hostname.split('.'),
domainMatch = new RegExp('[^.]*\\.' + parts[1] + '\\.' + parts[2] + '$');
if (this.hostname && !domainMatch.test(this.hostname)) {
// ...
}
您可能还需要验证零件阵列的长度。可能是这样的,域只包含
domain.com
;正如我所说,这取决于所讨论的域的设置。制作一个适用于任何域/子域系列的脚本可能非常困难。
var parts = location.hostname.split('.'),
domainMatch = new RegExp('[^.]*\\.' + parts[1] + '\\.' + parts[2] + '$');
if (this.hostname && !domainMatch.test(this.hostname)) {
// ...
}
$('a').filter(function() {
return this.hostname && this.hostname !== location.hostname && this.hostname.indexOf('.'+location.hostname)!=-1
})