Как получить родительский домен из URL без субдомена [дубликата]

1

Я пробовал это с очень долгого времени. Вам нужна функция JavaScript для извлечения родительского домена из URL.

вход
https://app.domainname.io
http://domainname.net
https://domainname.com
https://app.domain.com
https://www.google.co.in
http://dev2-aa.domain-name.com
https://app.domain.co.in

Выход
domainname.io
domainname.net
domainname.com
domain.com
google.co.in
domain-name.com
domain.co.in

Спасибо

  • 0
    Если вы пытались, пожалуйста, покажите код ваших попыток
Теги:

2 ответа

0

Это решение может быть не идеальным, но работает для ваших данных образца:

function extractDomain(url) {
  return url.match(/https?:\/\/(?:\S+\.)*(\S{3,}(?:\.\S{1,3}){1,2})/)[1]
}

Объяснение:

https?:\/\/: Ищет http или https

(?:\S+\.)*: (?:\S+\.)* но не фиксирует любое количество поддоменов

(\S{3,}(?:\.\S{1,3}){1,2}): захватывает домен и TLD. В деталях:

S{3,}: поиск чего-то большего, что должно быть частью домена (например, google). Это не идеально, потому что доменное имя длиной 2 буквы не совпадает.

(?:\.\S{1,3}){1,2}: Соответствует части TLD: один TLD (например .com) или две короткие части (например, .co.in).

0

Мы могли бы попробовать это,

function getHostName(url) {
    var match = url.match(/:\/\/(www[0-9]?\.)?(.[^/:]+)/i);
    if (match != null && match.length > 2 && typeof match[2] === 'string' && match[2].length > 0) {
    return match[2];
    }
    else {
        return null;
    }
}

function getDomain(url) {
    var hostName = getHostName(url);
    var domain = hostName;

    if (hostName != null) {
        var parts = hostName.split('.').reverse();

        if (parts != null && parts.length > 1) {
            domain = parts[1] + '.' + parts[0];

            if (hostName.toLowerCase().indexOf('.co.uk') != -1 && parts.length > 2) {
              domain = parts[2] + '.' + domain;
            }
        }
    }

    return domain;
}
  • 0
    getDomain('https://www.google.co.in') -> co.in
  • 0
    ты прав: D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню