2014-11-19 1 views
2

Как удалить «http: //» с начала URL-адреса внутри представления в приложении AngularJS?Как удалить «http: //» из имени домена внутри представления

У меня есть URL-адресов в базе данных, как:

http://example.com/ 
http://example.com 
example.com 

, но мне нужно только, чтобы показать

example.com 

внутри вида.

+0

Что делать, если это HTTPS? – Joe

+0

@ Joe Я работаю с ограниченными URL-адресами, у меня нет https – Gordian

ответ

4

Это связано с HTTP и HTTPS или любой другой URL. Он использует встроенный класс URL, который будет обрабатывать все вещи, о которых вы не думали правильно.

app.filter('domain', function() { 
    return function (input) { 
     try { 
     var url = new URL(input); 
     return url.hostname; 
     } catch (DOMException) { 
     // Malformed URL. Return original (or something else). 
     return input; } 
     }; 
    }); 

URL-адреса, которые являются правильными, и вы, возможно, не думали:

Вам не нужно их сейчас, но используя правильную функцию библиотеки означает, что ваше приложение не будет ломаться неожиданно в будущем, когда кто-то пытается использовать его для чего-то другого.

+0

Я попытался использовать этот фильтр в проекте. он не работает, если входной URL-адрес не имеет в нем протокола. Я знаю, что этот вопрос не упоминается. – Reyraa

+0

В строке после комментария «неправильный url» вы можете добавить схему URL и повторите попытку. – Joe

2

использовать этот фильтр ввиду

app.filter('domain', function() { 
    return function (input) { 
    var output = "", 
    matches; 

    var urls = /\w+:\/\/([\w|\.]+)/; 
    matches = urls.exec(input); 

    if (matches !== null) output = matches[1]; 
     return output; 
    }; 
}); 
+0

извините за отмену акцепта, Джо показал лучший способ. Я думаю, что другим это понадобится – Gordian

+0

@ Gordian Да, я думаю, что это тоже лучше – Reyraa

Смежные вопросы