Techioz Blog

指定された文字列が 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 ライブラリを使用する利点は、複雑なチェックを実行できることです。