2011-08-18 35 views
40

Olası Çoğalt:
Which characters make a url invalid?URL'de hangi karakterler geçerlidir?

ben büyük bir dize URL olmayan kısmını çıkarmak için çalışıyorum. Bulduğum normal ifadelerin çoğu [A-Za-z0-9-_.!~*'()] gibidir, ancak bir URL içerebilecek daha fazla şey vardır. örneğin http://127.0.0.1:8080/test?v=123#this gibi

Yani geçerli bir URL için son karakterler nelerdir?

DÜZENLEME:

Onlar görünmektedir:

A-Za-z0-9 -._ ~:?!/# [] @ $ & '() * +,; = ve%

+3

RFC'ye baktınız mı? http://www.faqs.org/rfcs/rfc1738.html – ale

cevap

74

tüm kanlı ayrıntıları konu hakkında geçerli RFC bulunabilir onaltılık değeri ve ardından: RFC 3986 (Uniform Resource Identifier (URI): Generic Syntax)

this related answer dayanarak, bir bakıyorsun A-Z, a-z, 0-9, -, ., _, ~, :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,: benziyor liste , ; ve =. Her şey url-encoded olmalıdır. Ayrıca, bu karakterlerin bazıları yalnızca bir URI'de çok spesifik noktalarda bulunabilir, RFC bu özelliklerin tümüne sahiptir.

+5

Not: bu liste yüzde işareti – thomasrutter

+4

içermez. Bu doğru @ tomasrutter, bir URL kodlama için kullanılır. Bir% URI'da kullanılacak% 25 olarak gösterilmesi gerekir. RFC: Yüzde ("%") karakter yüzde kodlu sekizli için gösterge olarak hizmet ettiğinden, bu sekizlik için bir URI içinde veri olarak kullanılacak şekilde "% 25" olarak kodlanmış olması gerekir. – ckittel

+6

Sadece geçerli olanların ('/', '?', '#', '&', '+') Bazılarının, sorgu bileşenli bir URL'de belirli bir işlevselliğe hizmet ettiğinden ve yalnızca düzenli karakter olarak kabul edilmediğinden bahsetmek için – kofifus