2011-03-24 19 views
2

絶対URLまたは相対URLを検証するには、正規表現が必要です。正規表現絶対URLまたは相対URLを検証する

+0

[文字列が有効なURLであるかどうかをチェックするのに最適な正規表現は何ですか](http://stackoverflow.com/questions/161738/what-is-the-best-regular-expression-to-文字列が有効なURLを確認する) –

+3

すべての例は**有効なURLです。 - 実際、最後のものは有効**絶対** URL(あなたは相対的なもの、絶対的なもの、プロトコルスキーマを持たないものと思われます)と最後のものは(有効な!)相対URLです。要約すると、あなたが何をしているのかははっきりしない。 #4の –

+0

の欠陥:私はページ「http://www.somesite.com/blah.html」にあります。 ...のようなページにリンクがある場合、最終的には「http://www.somesite.com/example」を指す有効なURLにすることができる「http://www.somesite.com/example」が表示されます/index.html "またはmod_rewriteでリダイレクトできるものがあります。そのメモでは、mod_rewriteを使って何かに何かをリダイレクトすることができますので、厳密に"無効 "なURLはありません。 –

答えて

0

Konrad Rudolph氏が正しく指摘しているとおり、OP内のすべての例は有効なURLです!また、空の文字列も有効なURLであることを知っていますか?それは本当です! 本当にがURLを検証したい場合、またはというURIをとすれば、最初に読む文書はRFC-3986 - Uniform Resource Identifier (URI): Generic Syntaxです。

Regular Expression URI Validation

ジェネリック URIと、この唯一の取引いる:私は、件名に記事この問題にビットを探していると書かれている(書いています)。興味のあるスキームに固有の要件(例えば、HTTP)を調べることをお勧めします。ホスト名がvaild DNSホストであることが必要です。

3
(http://|/)[^ :]+ 

を失敗し

  • /example.com/some.pdfが
  • 例を失敗し渡す必要渡す必要注:/example.com/someは、フォルダにピリオドを付けることができるため、すべてのファイルに拡張子が付いていないため、有効なURLです。

    システムによっては、ネガティブな角括弧に追加する文字の種類が簡単に増えることがあります。

    これを行う最も簡単な方法は、サーバから実際に天気をチェックするためにファイルメタデータを実際に要求することですが、正規表現はまったく使用しません。

  • +1

    他のプロトコルはどうですか? https? ftp? smb?あまりにも信頼できるものではありません。 – caiosm1005