Подтвердить что ты не робот

Проверьте, является ли заданная строка URL-адресом

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

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

Спасибо

4b9b3361

Ответ 1

Используйте библиотеку URI.

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

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

Ответ 2

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