2011-08-18 55 views
40

可能重複:
Which characters make a url invalid?什麼字符在URL中有效?

我試圖刪除一個大串的非URL的一部分。我發現的大部分正則表達式都像[A-Za-z0-9-_.!~*'()],但是URL還可以包含更多的東西。像http://127.0.0.1:8080/test?v=123#this例如

那麼有效的URL的最新字符是什麼?

編輯:

他們似乎是:

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,%用於網址編碼。 %需要表示爲%25才能用於URI。 來自RFC: 由於百分比(「%」)字符用作百分比編碼的八位位組的指示符,因此該字節必須百分比編碼爲「%25」,以用於該URI中的數據。 – ckittel

+6

只要提到那些('/','?','#','&','+')有效,就會在具有查詢組件的URL中提供特定的功能並且不會被視爲只是普通的字符 – kofifus

相關問題