如何获取没有子域名的域名?
例如如果网址是“http://one.two.roothost.co.uk/page.html“如何获取“roothost.co.uk”?
以下是提取没有任何子域的域名的解决方案。此解决方案不对 URL 格式做出任何假设,因此它应该适用于任何 URL。由于某些域名只有一个后缀(.com
),有些有两个或多个(.co.uk
),为了在所有情况下获得准确的结果,我们需要使用公共后缀列表,其中包含所有公共域名后缀的列表。
Solution
首先,包括公共后缀列表 js api在 HTML 的脚本标记中,然后在 JavaScript 中获取可以调用的主机名:
var parsed = psl.parse('one.two.roothost.co.uk');
console.log(parsed.domain);
...这将返回“roothost.co.uk”。要从当前页面获取名称,您可以使用location.hostname
而不是静态字符串:
var parsed = psl.parse(location.hostname);
console.log(parsed.domain);
最后,如果您需要直接从完整的 URL 字符串中解析域名,您可以使用以下命令:
var url = "http://one.two.roothost.co.uk/page.html";
url = url.split("/")[2]; // Get the hostname
var parsed = psl.parse(url); // Parse the domain
document.getElementById("output").textContent = parsed.domain;
JSFiddle 示例(它包括 jsFiddle 中的整个缩小库,所以向下滚动!):https://jsfiddle.net/6aqdbL71/2/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)