Как получить домен из почты или адреса
Короткий ответ
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 — Разбивает строку на массив по разделителю.