Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将外部链接与javascript匹配(但忽略子域)?_Javascript_Jquery - Fatal编程技术网

如何将外部链接与javascript匹配(但忽略子域)?

如何将外部链接与javascript匹配(但忽略子域)?,javascript,jquery,Javascript,Jquery,我使用以下(jquery)选择器查找外部链接 这会起作用,并忽略所有包含location.hostname(例如www.domain.com)的链接 我的问题是,如何扩展它,同时忽略站点子域的链接?(如new.domain.com) 如果你知道你的子域相对于你的站点的主机名是什么样子的,你可以用它来做一个正则表达式。例如,如果主机名始终为x.y.z,则可以分割主机名的最后两部分,并忽略主机名以相同方式结束的任何锚 var parts = location.hostname.split('.'),

我使用以下(jquery)选择器查找外部链接

这会起作用,并忽略所有包含
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
      })