1. ホーム
  2. ruby

[解決済み] URLが有効かどうかを確認する方法

2022-12-21 11:27:17

質問

ある文字列が有効なURLであるかどうかを確認するにはどうしたらよいでしょうか。

例えば

http://hello.it => yes
http:||bra.ziz, => no

これが有効なURLである場合、これが画像ファイルへの相対的なものであるかどうかを確認するにはどうしたらよいでしょうか?

どのように解決するのですか?

お知らせです。

CGuess が指摘したように、この問題にはバグがあり、検証がこの正規表現の目的ではないことは、もう 9 年以上も前から文書化されています (たとえば https://bugs.ruby-lang.org/issues/6520 ).






を使用します。 URI モジュールはRubyで配布されています。

require 'uri'

if url =~ URI::regexp
    # Correct URL
end

のように アレクサンダー・ギュンター がコメントで述べているように、これは文字列 が含まれているかどうかをチェックします。 を含むかどうかをチェックします。

文字列が がURLであるかどうかを調べるには、以下を使用します。

url =~ /\A#{URI::regexp}\z/

WebのURLだけをチェックしたい場合( http または https ) を使用する場合は、これを使用します。

url =~ /\A#{URI::regexp(['http', 'https'])}\z/