如何从window.location对象中仅提取域名?

时间:2017-04-10 21:00:05

标签: javascript

例如,我只想提取" google"从这些提到主机名

我不想检索主机名,我只需要没有tld和subdomain的域名(如果有的话)。

等。

2 个答案:

答案 0 :(得分:1)

简单地使用location.host并从中提取想要的部分,这是一个可以使用的实用函数:

function extractDomainName(hostname) {
    var host = hostname;
    host = host.replace(/^www\./i, "");
    host = host.replace(/(\.[a-z]{2,3})*\.[a-z]{2,3}$/i, "");
    return host;
}

它使用整个hostname并使用.replace()方法仅使用regex返回其中的域名,以仅提取域名。

你可以在这里看到它的工作原理。

<强>演示:

&#13;
&#13;
function extractDomainName(hostname) {
  var host = hostname;
  host = host.replace(/^www\./i, "");
  host = host.replace(/(\.[a-z]{2,3})*\.[a-z]{2,3}$/i, "");
  return host;
}

var tests = ["www.google.com", "www.tutorialspoint.com", "somesite.gov.fr", "www.path.co.ltd"];

tests.forEach(function(hostname) {
  console.log(hostname);
  console.log(extractDomainName(hostname));
});
&#13;
&#13;
&#13;

答案 1 :(得分:1)

使用位置对象的主机名,您可以在TLD之前检查域名。这也将忽略子域。

&#13;
&#13;
var domain = window.location.hostname.match(/([a-z0-9-]*?)\.[a-z]{2,}$/)[1];

console.log(domain);
&#13;
&#13;
&#13;