Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как получить домен из почты или адреса

Короткий ответ

URL даёт имя хоста в свойстве hostname:

const url = new URL('https://www.example.com/blog/post?id=5');
 
console.log(url.hostname);

Результат:

www.example.com

Без www

Уберите префикс через replace():

const host = new URL('https://www.example.com').hostname.replace(/^www\./, '');
 
console.log(host);

Результат:

example.com

Из почты

Домен — всё после последнего @:

const email = 'anna.smith@mail.example.org';
 
console.log(email.slice(email.lastIndexOf('@') + 1));

Результат:

mail.example.org

Частая ошибка

Адрес без протокола — некорректный URL, и new URL() выбрасывает ошибку. Добавьте протокол, если его нет:

const input = 'example.com/page';
const url = new URL(/^https?:\/\//.test(input) ? input : 'https://' + input);
 
console.log(url.hostname);

Результат:

example.com

Функции из этого ответа

  • URL — Разбирает адрес на части и собирает его обратно.
  • String.prototype.split — Разбивает строку на массив по разделителю.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.