Javascript 从url解析主机,但不包含子域等
我正在开发一个chrome扩展,它从Javascript 从url解析主机,但不包含子域等,javascript,url,google-chrome-extension,Javascript,Url,Google Chrome Extension,我正在开发一个chrome扩展,它从window.location.hostname读取域。现在,为了让这个扩展正常工作,我需要能够将子域和其他url变体分离到同一主机。例如: 我需要以下所有url:s www.google.com accounts.google.com photos.google.se example.google.co.uk https://google.com 所有这些都需要以一种可靠的方式解决,在本例中是“谷歌”,并将适用于任何有时具有古怪子域配置的网站 这是我目前的
window.location.hostname
读取域。现在,为了让这个扩展正常工作,我需要能够将子域和其他url变体分离到同一主机。例如:
我需要以下所有url:s
www.google.com
accounts.google.com
photos.google.se
example.google.co.uk
https://google.com
所有这些都需要以一种可靠的方式解决,在本例中是“谷歌”,并将适用于任何有时具有古怪子域配置的网站
这是我目前的观点,有些简化:
var url = window.location.hostname.split(".") //returns an array of strings
for(i=0;i<url.length;i++){
if(url[i].match(domainregex) //regex for identifying domains ".com",".se",".co.uk" etc
return url[i-1] //usually what I'm after is directly before the domain, thus i-1
}
var url=window.location.hostname.split(“.”//返回字符串数组
对于(i=0;i来说,剥离顶级域部分并获取主域部分的更可靠解决方案是使用Firefox、Chrome和其他浏览器使用的
如果您不想自己编写,可以使用列表中的数据。剥离顶级域部分并获取主域部分的更可靠解决方案是使用Firefox、Chrome和其他浏览器使用的
如果您不想自己编写,则可以使用列表中的数据。我必须为我的“编辑我的cookie”分支执行此操作,因此它将能够更改每个站点的cookie配置文件。()
这就是我所做的,它对我很有效。我确信如果它不能完全解决问题,但我确信它会有所帮助
var remove_sub_domain=function(v){
var is_co=v.match(/\.co\./)
v=v.split('.')
v=v.slice(is_co ? -3: -2)
v=v.join('.')
console.log(v)
return v
}
它的工作目标是:
www.google.com
accounts.google.com
photos.google.se
example.google.co.uk
google.com
如果您希望它也适用于:
http://gooogle.com
您首先需要删除协议:
parser=document.createElement('a');
parser.href=url;
host=parser.host;
newurl=remove_sub_domain(host);
我必须为我的“编辑我的Cookie”分支做这件事,这样它才能更改每个站点的Cookie配置文件。()
这就是我所做的,它对我很有效。我确信如果它不能完全解决问题,但我确信它会有所帮助
var remove_sub_domain=function(v){
var is_co=v.match(/\.co\./)
v=v.split('.')
v=v.slice(is_co ? -3: -2)
v=v.join('.')
console.log(v)
return v
}
它的工作目标是:
www.google.com
accounts.google.com
photos.google.se
example.google.co.uk
google.com
如果您希望它也适用于:
http://gooogle.com
您首先需要删除协议:
parser=document.createElement('a');
parser.href=url;
host=parser.host;
newurl=remove_sub_domain(host);
你也可以利用一些现有的工具。这一个似乎很好用:你也可以利用一些现有的工具。这一个似乎很好用: