哪些字符使URL无效?
这些是有效的URL吗?
example.com/file[/].html
http://example.com/file[/].html
一般来说,RFC 3986所定义的URI(见第2节:字符)可以包含以下84个字符中的任何一个。
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=
请注意,这个列表并没有说明这些字符在URI中可能出现的位置。
任何其他字符都需要用百分比编码(%hh)进行编码。URI的每一部分都有进一步的限制,即哪些字符需要用百分比编码的字来表示。
%
hh
所有可用于URI(URL是URI的一种类型)的有效字符都在RFC 3986中定义。
所有其他的字符都可以在URL中使用,只要它们首先被"URL Encoded"。 这涉及到为特定的"代码"改变无效的字符(通常以百分号(%)的形式,后面跟一个十六进制数字)。
这个链接,HTML URL编码参考,包含一个无效字符的编码列表。
这不是对你的问题的回答,但验证URL真的是一个严重的问题。 你可能最好只验证域名,而不对网址的查询部分进行验证。这是我的经验。 你也可以采用ping网址的方法,看看是否能得到有效的响应,但对于这样一个简单的任务来说,这可能是太多了。
用正则表达式来检测网址是很丰富的,谷歌一下就知道了:)
一般来说,RFC 3986所定义的URI(见第2节:字符)可以包含以下84个字符中的任何一个。
请注意,这个列表并没有说明这些字符在URI中可能出现的位置。
任何其他字符都需要用百分比编码(
%
hh
)进行编码。URI的每一部分都有进一步的限制,即哪些字符需要用百分比编码的字来表示。所有可用于URI(URL是URI的一种类型)的有效字符都在RFC 3986中定义。
所有其他的字符都可以在URL中使用,只要它们首先被"URL Encoded"。 这涉及到为特定的"代码"改变无效的字符(通常以百分号(%)的形式,后面跟一个十六进制数字)。
这个链接,HTML URL编码参考,包含一个无效字符的编码列表。
这不是对你的问题的回答,但验证URL真的是一个严重的问题。 你可能最好只验证域名,而不对网址的查询部分进行验证。这是我的经验。 你也可以采用ping网址的方法,看看是否能得到有效的响应,但对于这样一个简单的任务来说,这可能是太多了。
用正则表达式来检测网址是很丰富的,谷歌一下就知道了:)