从URL获取二级域名

sub*_*ime 9 javascript subdomain url url-parsing

有没有办法从网址获取顶级域名

例如," https://images.google.com/blah "=>"google"

我找到了这个:

var domain = new URL(pageUrl).hostname; 
Run Code Online (Sandbox Code Playgroud)

但它给了我"images.google.com"而不仅仅是谷歌.

我有的单元测试是:

https://images.google.com   => google
https://www.google.com/blah => google
https://www.google.co.uk/blah => google
https://www.images.google.com/blah => google
Run Code Online (Sandbox Code Playgroud)

Rob*_* M. 6

你可以这样做:

location.hostname.split('.').pop()
Run Code Online (Sandbox Code Playgroud)

编辑

看到你的问题的变化,你需要一个所有TLD列表来匹配和从主机名中删除,然后你可以使用 split('.').pop()

// small example list
var re = new RegExp('\.+(co.uk|me|com|us)')
var secondLevelDomain = 'https://www.google.co.uk'.replace(re, '').split('.').pop()
Run Code Online (Sandbox Code Playgroud)