Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как из URL получить доменное имя (https://javascript.ru/forum/events/56906-kak-iz-url-poluchit-domennoe-imya.html)

Egor1324 09.07.2015 13:38

как из URL получить доменное имя
 
Всем привет! Возник вопрос, у меня есть Input, в который пользователь вводит URL - адрес (http://1111111.ru/?ref=1), как мне получить доменное имя вида : 1111111.ru

Deff 09.07.2015 14:41

var url = 'http://1111111.ru/?ref=1';
var host = url.split(/\/+/)[1];
alert(host)

Aetae 09.07.2015 14:56

if(!('URL' in window)){
    URL = function URL(url){
        var a = document.createElement('a');
        a.href = url;
        return a;
    }
}
alert(new URL('http://1111111.ru/?ref=1').host);

kostyanet 09.07.2015 18:07

Тут скорее всего инпут надо сделать type="url" и поискать регу для валидации, которая и выдаст домен с поддоменом если будет.

Egor1324 10.07.2015 00:08

Все работает, только у меня еще вопрос, вот как я сделал :
$("#ads_edit_url").click(function(){
        if($("#ads_param_link_url").val() != ''){
            var url = $("#ads_param_link_url").val();
            if(url.substr(0,4) == "http"){
                var domain = url.split(/\/+/)[1];
                if(domain.substr(0,3) == "www"){
                    var domain = domain.split(/\www+./)[1];
                }
            }else if($("#ads_param_link_url").val().substr(0,3) == "www"){
                var url = $("#ads_param_link_url").val();
                var domain = ("http://"+url).split(/\/+/)[1];
                var domain = domain.split(/\www+./)[1];
            }else{
                var domain = $("#ads_param_link_url").val();
            }
            $("#ads_param_link_domain").removeAttr("readonly");
            $("#ads_param_link_domain").removeAttr("disabled");
            $("#ads_param_link_domain").attr("value", ""+domain+"");
        }else{
            $("#ads_param_link_domain").val("");
            $("#ads_param_link_domain").attr("readonly"," ");
            $("#ads_param_link_domain").attr("disabled"," ");
        }
    });

а как мне проверить существует домен или нет ?

Deff 10.07.2015 00:39

Egor1324,
Наверно это нун делать сервером, есть куча whois - сервисов, есть и с api возвращающих данные о домене
Если нун проверять до отправки формы - то отправляете Аякс запрос на свой сервер с async: false дожидаясь ответа с сервера, наверно поставить гиф-картинку uploader , дабы крутилась пока ожидается ответ

Deff 10.07.2015 00:45

var domain = url.replace('www.','//').split(/\/+/)[1];

Egor1324 10.07.2015 00:53

Цитата:

Сообщение от Deff (Сообщение 378470)
var domain = url.replace('www.','').split(/\/+/)[1];

спасибо, но этот код, не будет работать, если ввести www.xcv.ru/?ref=1, выведет: ?ref=1

Deff 10.07.2015 01:11

Тады так
var domain = url.replace('www.','//').split(/\/+/)[1];

kostyanet 10.07.2015 05:20

Цитата:

Сообщение от Egor1324
вот как я сделал

Через ж и сделали. Aetae вам показал каноничный способ парсинга урлов в жабе скрипучей. Этот способ применяется повсеместно, потому что это жаба, а не пхп.

То есть когда нужен домен, а не валидация, то и добывайте его нормальным способом, а не через жэпэ.

Чтобы проверить есть такой домен, в смысле зареган ли - ищите апи хуиз сервисов.

kostyanet 10.07.2015 05:23

Кстати представленный кусок отлично подойдет для ежедневника govnokod.ru

kostyanet 11.07.2015 04:55

Для тех кто "нипонял" как работает метод парсинга через привод в Дом https://developer.mozilla.org/en-US/...LAnchorElement

Deff 11.07.2015 05:04

kostyanet,
Для тех кто в танке, лучший метод подавления собственного ЧСВ - делать как просят и параллельно приводит код, как Вы считаете правильно. А не заниматься нравоучениями(- гугол доступен каждому). Ибо, достаточно часто нужен метод с нюансами, а не навязываемый догмой выскочки с "высокоученостью".
Я вас не видел ни два года назад, ни три, а с Aetae я могу код и в личке обсудить.

kostyanet 11.07.2015 05:15

Deff этой культуры не знает, придется за него. Переношу из оффтопа сюда

Цитата:

Сообщение от Deff (Сообщение 378728)
вставьте в код предложенный Aetae ссылку вида www.javascript.ru
Выдаст функция Вам код ??
Либо вставляйте длинное пояснение, что типовой вариант URL допустимый в браузере, в этом поле не работает.

Почему я там написал "бред"? Да потому что эта функция, которую Aetae нарисовал, вообще ничего не делает кроме того, что создает элемент ссылки и инициализирует ее проперть href. Все. Все остальное работает потому что есть такой элемент и у него есть ряд свойств, среди которых есть полезные для решения этой задачи.

kostyanet 11.07.2015 05:19

Цитата:

Сообщение от Deff
учший метод подавления собственного ЧСВ - делать как просят и параллельно приводит код

Слушайте, вы же что на самом деле не понимаете что не может быть тут альтернативы и параллелей ? Ну как-то по-другому вы можете сделать этот элемент - а все остальное будет по спецификации.

Альтернативы вроде реги или там разбирать по косточкам - они зачем вообще нужны, если есть _природный_ метод, который, кстати, в синтаксисе Aetae повторяет ныне экспериментальную функцию URL, которая если приживется, позволит вам выкосить свою.

kostyanet 11.07.2015 05:23

Кстати, как я и предполагал хуизы сами парсят хост, то есть применительно к конкретике базар вообще ниочем. Зайдите на whois.net и вставьте ему http://javascript.ru/forum/showthrea...d=1#post378734

Deff 11.07.2015 05:25

kostyanet,
Вы тогда не представляете, что значит сервис из миллиона пользователей,
любая форма должна быть настолько доступна к типовым методам вставки того же URL, как и в адресное окно браузера, 70% юзеров вобъют по первости именно так: www.javascript.ru. До whois.net еще надо передать, а функция Aetae такие ссылки не переваривает

kostyanet 11.07.2015 06:07

Deff дает массу еды. Почему я не могу постебаться над тупым, который упорно защищает право тупых на тупизну?

Цитата:

Сообщение от Deff
что значит сервис из миллиона пользователей,

Миллион пользователей собрались и устроили кому-то сервис? Другому миллиону или одному пользователю? Может они в печку играют?

Цитата:

Сообщение от Deff
любая форма должна быть настолько доступна к типовым методам вставки того же URL, как и в адресное окно браузера

Перевожу на русский: в поле формы могут вставить из буфера обмена. Конец перевода.

Вопросы: Где это такое "адресное окно" у браузера? Насколько форма должна быть "настолько" доступна? Ну то есть настолько это насколько?

Цитата:

Сообщение от Deff
До whois.net еще надо передать

Вам же объяснили выше что хуиз.нет сам парсит урл. Передавайте что юзер сделал типовым методом вставки как в адресное поле браузера.

Цитата:

Сообщение от Deff
а функция Aetae такие ссылки не переваривает

Она вообще ничего не переваривает - все переваривает парсер браузера. Встроенный. На него и жалуйтесь.

Safort 11.07.2015 12:12

kostyanet,
для начала выписываю пред, в следующий раз будет бан. Хватит развязывать конфликты.

vip.beggins 22.07.2016 11:49

Интернет-сервис OF.ua специализируется на предоставлении услуг по регистрации имен для сайтов в приватных доменах OF.ua, OT.ua, PRI.ua, ViD.ua, WS.ua.
https://of.ua

uinths 28.07.2016 14:54

Интернет-сервис OF.ua специализируется на предоставлении услуг по регистрации имен для сайтов в приватных доменах OF.ua, OT.ua, PRI.ua, ViD.ua, WS.ua.
OF.ua

dyrlo 17.10.2016 14:26

зарегистрировать домен можно на сервисе https://of.ua Большой плюс в том что они дают имя для почты такое же и сайт визитку в подарок с хостингом и личной админкой. Отличный сервис.


Часовой пояс GMT +3, время: 10:48.