Проверьте, является ли данная строка URL - PullRequest
32 голосов
/ 16 марта 2011

В моем приложении rails мне нужно проверить, действительно ли указанный пользователем URL-адрес является URL-адресом.Меня интересует только протокол HTTP (и, возможно, HTTPS, я вообще не рассматривал это), что заставляет меня поверить, что в рельсах уже может быть что-то, что может сделать эту работу для меня.

Если нет: можете ли вы порекомендовать строку регулярного выражения, которая делает это?Я нашел некоторые после поиска в Google, но у всех, кажется, есть проблема или два согласно комментариям пользователей.

Спасибо

Ответы [ 2 ]

65 голосов
/ 16 марта 2011

Использование библиотеки URI .

def uri?(string)
  uri = URI.parse(string)
  %w( http https ).include?(uri.scheme)
rescue URI::BadURIError
  false
rescue URI::InvalidURIError
  false
end

Это очень простой пример. Преимущество использования библиотеки URI перед регулярным выражением состоит в том, что вы можете выполнять сложные проверки.

3 голосов
/ 12 октября 2012

validates :url, :format => URI::regexp(%w(http https))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...