jQuery 从字符串中提取域(.com、.it、.fr)的结尾部分

jQuery extract finishing part of the domain (.com, .it, .fr) from a string

我有这样一个域的问题:

https://example.com/Controller/Index

或:

https://example.it/Controller/Index

或:

https://example.de/Controller/Index

我想使用 jQuery 提取域的 .com .de 和 .it 部分。我环顾四周,没有找到任何关于如何做到这一点的例子。

有人可以帮我吗?

如果您只是想解析页面本身的 URL,您可以简单地检查 window.location.hostname。您只需将它按 . 字符拆分并获得最后一项:

var hostnameParts = window.location.hostname.split('.');
var topLevelDomain = hostnameParts[hostnameParts.length - 1];

var hostnameParts = window.location.hostname.split('.');
var topLevelDomain = hostnameParts[hostnameParts.length - 1];

console.log('This iframe\'s hostname: ' + window.location.hostname);
console.log('The top level domain: ' + topLevelDomain);


但是,如果要在 URL 出现在字符串中时对其进行解析,则需要依赖正则表达式:

var url = 'https://example.com/Controller/Index';
var pattern = /^https?:\/\/.*\.(.*?)\/.*$/gi;
var urlParsed = pattern.exec(url);
var topLevelDomain = urlParsed ? urlParsed[1] : null;

概念验证示例:

document.getElementById('parseUrl').addEventListener('click', function() {
  var url = document.getElementById('url').value;
  var pattern = /^https?:\/\/.*\.(.*?)\/.*$/gi;
  var urlParsed = pattern.exec(url);
  console.log('Parsing URL string: ' + url);

  if (urlParsed) {
    console.log('- Top level domain: ' + urlParsed[1]);
  } else {
    console.log('- Unable to parse URL');
  }
});
#url {
  display: block;
  width: 100%;
}
<input type="text" value="https://example.com/Controller/Index" id="url" />
<button type="button" id="parseUrl">Get top level domain</button>