Давайте представим, что у меня есть следующая ссылка: dev.bologer.ru/site и я хочу получить поддомен этого сайта (нужно получить «dev»). Что в таком случае делать? В этой записи я вам об этом расскажу.
Для получения поддомена сайта я написал небольшой кусок кода. Вам НЕ нужно jQuery и другие библиотеки, только чистый JavaScript. Данный пример работает во всех браузерах.
Код
var siteUrl = window.location.hostname; var regex = /^([a-z0-9]{1,})./gi; // добавь еще "m" если хотите, чтобы работало для мультистрок var res = regex.exec(siteUrl); if( !res ) console.log('Поддомен не найден.'); else console.log('Поддомен: ' + res[1]);
Объяснение кода
window.location.hostname
— вернет нам полный url сайта, но без $_GET параметров (пример: ?id=1&category=socks&hash=21w7d3812..» и всего остального мусора.
/^([a-z0-9]{1,})./gi
— использую регулярку для того, чтобы найти поддомен.
^ — начало строки
[a-z0-9] — ищу буквы от a-z и цифры от 0-9
{1,} — длинна должна быть от 1 символа и больше
/gi — «g» глобальный поиск по строке и «i», обозначает, что регистр не имеет значения
Далее, я использую regex и с помощью метода .exec()
запускаю его с «dev.bologer.ru». В итоге в res
сейчас находится массив, который выглядит вот так: ["dev.", "dev"]
Чтобы теперь вывести имя поддомена нам нужно вывести массив на позиции 1.
На этом все, приятного пользования.