我需要一个常规脚本/模式来从URL提取主域名。我有以下失败的尝试。
使用说我有这个链接1,需要提取没有子域(邮件(的主域名(Google.co.uk(。我制作了此脚本,它与.co.uk
合作,但会失败,该网站具有一个顶级域名,例如:.com
和.com
。
是否有更好的方法从任何URL提取主域名?URL的构造如下:
https://(optional sub-domain)*(domain name with two or three top-level domain name)(optional forward slash followed by text)*
*
参考零次或更多次。
var link1="https://mail.google.co.uk/link/link/link";
var url = new URL(link1);
var domain = url.hostname.split('.').slice(-3).join('.');
console.log("The domain name is: "+ domain);
在上述代码中,我希望:google.co.uk
它可以起作用,因为该链接在顶级域名(.co.uk
(中具有两个部分,因此-3
可以使用。但是我还需要代码来使用此链接:
var link1="https://mail.google.com/link/link/link";
我需要输出为: google.com
,但问题是代码产生:
mail.google.com
我只想要主要域名:google.com
编辑:一些预期的输出示例在这里:
1(在mail.google.co.uk
中应该是:google.co.uk
2(在mail.google.com
中应该是:google.com
3(在link.mail.google.com/link/link
中应该是:google.com
4(在link.link2.mail.google.com
中应该是:google.com
即。只是域名之后的无子域或链接的主要域名。顶级域名可以在(.com,.net,.org等(的FOM中,也可以是(.co.uk,.co.us等(的形式。如果是一部分或两个部分,则应捕获顶级域名(我的代码仅捕获两个部分(。
确保您是否想要
"mail.google.co.uk"
您可以只使用
url.host
,或者如果您想要标题,请使用
url.origin
欢呼!