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 вам показал каноничный способ парсинга урлов в жабе скрипучей. Этот способ применяется повсеместно, потому что это жаба, а не пхп.

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

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


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