我需要一个通用的脚本/模式来从URL中提取主域名。下面的尝试失败了。
假设我有这个link1,并且需要提取主域名(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等)的形式出现。顶级域名应该被捕获,如果它是一个部分或两个部分(我的代码只捕获两个部分)。
发布于 2018-03-29 12:40:13
当然,如果你想
"mail.google.co.uk"你可以用
url.host或者,如果您希望它带有标题,请使用
url.origin干杯!
https://stackoverflow.com/questions/49556295
复制相似问题