как извлечь имя домена из строки в javascript

Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
20 декабря 2024

Наиболее современный и простой в синтаксисе способ будет использовать встроенный объект URL, который позволяет парсить URL-адреса.

// Создаём объект URL из строки
const url = new URL('https://subdomain.example.com/path?param=value');

// Получаем домен (hostname включает поддомены)
console.log(url.hostname);  // "subdomain.example.com"

// Получаем только основной домен с TLD
console.log(url.host.split(':')[0]);  // "subdomain.example.com" (без порта, если он был)

// Если нужно получить только домен второго уровня с TLD
const getDomain = (urlString) => {
    const url = new URL(urlString);
    const parts = url.hostname.split('.');

    // Обрабатываем случаи вида example.com и www.example.com
    if (parts.length <= 2) return url.hostname;

    // Берём последние две части для получения домена с TLD
    return parts.slice(-2).join('.');
};


console.log(getDomain('https://www.example.com'));      // => "example.com"
console.log(getDomain('https://sub.example.com'));      // => "example.com"
console.log(getDomain('https://deep.sub.example.com')); // => "example.com"
0 0
Познакомьтесь с основами JavaScript бесплатно