Проверьте, является ли заданная строка URL-адресом
В моем приложении rails мне нужно проверить, действительно ли URL-адрес, указанный пользователем, URL. Я только обеспокоен протоколом HTTP (и, возможно, HTTPS, я вообще не занимался этим), что заставляет меня поверить, что в рельсах что-то уже есть, что может сделать эту работу для меня.
Если нет: можете ли вы рекомендовать строку регулярного выражения, которая делает это? Я нашел некоторые после googling, но все они, похоже, имеют проблемы или два в соответствии с комментариями пользователей.
Спасибо
Ответы
Ответ 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))