2011-08-18 8 views
40

可能性の重複:
Which characters make a url invalid?URLにはどのような文字が有効ですか?

私は大きな文字列の非URLの一部を除去しようとしています。私が見つけた正規表現のほとんどは[A-Za-z0-9-_.!~*'()]のようですが、URLに含まれる可能性のあるものがさらにあります。 like http://127.0.0.1:8080/test?v=123#thisたとえば

有効なURLの最新の文字は何ですか?

EDIT:

彼らがあるように見える:

A-ZA-Z0-9 -._〜:?!/#[] @ $ &「()* +、; =そして%

+3

あなたはRFCを見ましたか? http://www.faqs.org/rfcs/rfc1738.html – ale

答えて

74

すべての血みどろの詳細は、トピックに関する現在のRFCで見つけることができ進値が続い:RFC 3986 (Uniform Resource Identifier (URI): Generic Syntax)

this related answerに基づいて、あなたが見ていますA-Za-z0-9-._~:/?#[]@!$&'()*+,:ように見えるリスト、;、および=。他のすべてはurl-encodedである必要があります。また、これらの文字の一部はURI内の特定の場所にのみ存在することがあり、RFCにはこれらすべての特質があります。

+5

注:このリストにはパーセント記号 – thomasrutter

+4

は含まれていません。正しい@thomasrutterです。%はURLエンコードに使用されます。 URIでは%を%25として表現する必要があります。 RFC: %( "%")文字はパーセント符号化オクテットのインジケータとして機能するため、URI内のデータとして使用するには、オクテットを%25でパーセントエンコードする必要があります。 – ckittel

+6

有効な間に( '/'、 '?'、 '#'、 '&'、 '+')のうちのいくつかは、クエリーコンポーネントを持つURL内の特定の機能を提供するだけで、通常の文字として扱われません。 – kofifus

関連する問題