2015-07-23 2 views
1

Я не уверен, что url shortener - это правильное название, потому что большинство результатов поиска указывают на такие вещи, как bit.ly.Рельсы: Как создать укороченный указатель?

Итак, вот что я хочу: Указанные строки URL, как:

http://avc.com 
http://firstround.com/review/feed/ 
http://svpg.com/articles/ 
http://www.medium.com/ 
http://www.paulgraham.com/ 

Включите его в

avc.com 
firstround.com 
svpg.com 
medium.com 
paulgraham.com 

Нет подобласть, нет подкаталог, нет /.

Я могу сделать что-то вроде url.split('://')[1].split('/')[0], но не могу избавиться от www, и мне интересно, есть ли лучший способ сделать это?

ответ

4

Вы можете использовать URI module, а затем использовать регулярное выражение для разбора из первого WWW. Например,

def host(url) 
    uri = URI.parse(url) 
    uri.host.sub(/^www./, '') 
end 
1

Посмотрите на класс URI.

% irb 
> require 'uri' 
=> true 
> u = URI('http://firstround.com/review/feed/') 
=> #<URI::HTTP http://firstround.com/review/feed/> 
> u.host 
=> "firstround.com" 
+0

Прошу прощения, это не касается префикса 'www', ответ Валдима лучше. – cqcn1991

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