如何从网址中的字符串获取网站名称?

时间:2019-02-19 16:02:06

标签: javascript jquery

我不知道如何剥离所有内容,仅保留网站名称。

所以给定了:

var url = "https://www.example.it/wp-json/wp/v2/posts?per_page=50&status=publish";

我将如何获得“ example”?

不熟悉正则表达式。

3 个答案:

答案 0 :(得分:3)

检出URL对象:https://developer.mozilla.org/en-US/docs/Web/API/URL

var address = "https://www.example.it/wp-json/wp/v2/posts?per_page=50&status=publish";
var url = new URL(address);
var hostname = url.hostname;
var hostTokens = hostname.split('\.');

console.log(hostTokens[1]); // example

console.log({
  hash         : url.hash,
  host         : url.host,
  hostname     : url.hostname,
  href         : url.href,
  origin       : url.origin,
  password     : url.password,
  pathname     : url.pathname,
  port         : url.port,
  protocol     : url.protocol,
  search       : url.search,
  username     : url.username
});
.as-console-wrapper { top: 0; max-height: 100% !important; }

如果需要支持子域,则可以修改以下功能。

var addresses = [ 'https://www.example.it', 'https://mail.example.it' ];

addresses.forEach(address => console.log(parseDomain(address)));

function parseDomain(address) {
  var url = new URL(address);
  var hostTokens = url.hostname.split('\.');
  var result = {
    'Domain' : hostTokens[hostTokens.length - 2],
    'Top-Level Domain' : hostTokens[hostTokens.length - 1]
  };
  if (hostTokens.length > 2 && hostTokens[0] !== 'www') {
    result['Sub-Domain'] = hostTokens[0];
  }
  return result;
}
.as-console-wrapper { top: 0; max-height: 100% !important; }

答案 1 :(得分:1)

您可以使用URLsplit()的组合而不使用 regex 来获得,主机名将返回{{1 }},因此,如果我们在其上应用www.example.com,它将使用.split('.')返回一个数组['www','example','com'],我仅使用 example 部分,希望它帮助:)

[1]

对于子域捕获

var url = "https://www.example.it/wp-json/wp/v2/posts?per_page=50&status=publish";
var domain = (new URL(url)).hostname.split('.')[1]
console.log(domain)

答案 2 :(得分:1)

尝试一下;

function getSiteName() {
  const fullUrlSplit = window.location.host.split(".");
  if (fullUrlSplit[0] !== "www")
    return fullUrlSplit[0];
  return fullUrlSplit[1];   
}

只要没有子域,这将起作用。