jQuery извлекает завершающую часть домена (.com, .it, .fr) из строки - PullRequest
0 голосов
/ 05 мая 2018

У меня проблема с доменом, подобным этому:

https://example.com/Controller/Index

или

https://example.it/Controller/Index

или

https://example.de/Controller/Index

Я бы хотел извлечь часть домена .com .de и .it с помощью jQuery. Я оглянулся и не нашел ни одного примера, как это сделать.

Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 05 мая 2018

Если вы просто пытаетесь разобрать 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>
...