Я лично рассмотреть www
быть поддомен, а в случае «второго-level' доменов (.co.uk
) I на самом деле рассмотрит co
доменное имя и все, что будет до этого, будет субдоменом.
Поскольку это не отвечает на ваш вопрос, вот только подход, основанный на вашем вводе (который вы измените после того, как вы узнаете, что 'second-level' domains (этот список не охватывает все) намного сложнее обнаружить, чем вы думаете) ,
function subdomain(host) {
var part = host.split('.').reverse(),
index = 0;
while (part[index].length === 2 || !index) {
++index;
}
++index;
return part.length > index && part[index] !== 'www' ? part[index] : '';
}
Working example
Что это делает применяет очень тупой правило, что «второй-level'-домены всегда состоят из 2х2 символов (co.uk
, co.in
и т.д.) и фильтровать те, затем перейдите к что сейчас считается основным доменным именем и пропустить это. Если, наконец, что-то есть в индексе, который мы определили, и он не соответствует «www», вы его возвращаете.
Это всего лишь пример, показывающий вам, насколько сложным является ваш вопрос, поскольку для этого потребуется обновленный (как в активно поддерживаемом, кураторском) списке «домен второго уровня», иначе вы можете не работать ,
Единственное, что я на самом деле принимал во внимание, это то, что some.deep.nested.sub.domain.com
предоставит вам sub
вместо some
.
(Также обратите внимание, что я не запрещал вообще запрещать сопоставление ip, так как это происходит в соответствии с правилом 2x2).
Мне очень любопытно о проблеме, которую вы пытаетесь решить, пытаясь изолировать субдомен, так как оно само по себе не имеет никакого смысла. Я могу подумать о ситуациях, когда вы хотите отобразить «никнейм» сортов на основе субдомена, но потом я заново узнаю, какие шаблоны ожидать. С технической точки зрения наличие только субдомена было бы бесполезным.
следующий ответ может помочь вам - HTTP: //stackoverflow.com/a/23945027/2020893 –
И это тоже - https://css-tricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/ –
Голосование закрывается, так как SO не является службой записи кода. – RobG