指定された文字列が URL であるかどうかを確認する
概要
私の Rails アプリケーションでは、ユーザーが指定した URL が本当に URL であるかどうかを確認する必要があります。私は HTTP プロトコル (おそらく HTTPS についてはまったく調べていません) のみに関心があるため、この作業を実行できるものがすでに Rails に存在するのではないかと考えています。
そうでない場合: これを行う正規表現文字列を推奨していただけますか?グーグルでいくつか見つけましたが、ユーザーのコメントによると、それらはすべて1つか2つ問題があるようです。
ありがとう
解決策
URI ライブラリを使用します。
def uri?(string)
uri = URI.parse(string)
%w( http https ).include?(uri.scheme)
rescue URI::BadURIError, URI::InvalidURIError
false
end
これは非常に単純な例です。正規表現ではなく URI ライブラリを使用する利点は、複雑なチェックを実行できることです。