哪些字符使URL无效?

哪些字符使URL无效?

这些是有效的URL吗?

  • example.com/file[/].html
  • http://example.com/file[/].html

一般来说,RFC 3986所定义的URI(见第2节:字符)可以包含以下84个字符中的任何一个。

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=

请注意,这个列表并没有说明这些字符在URI中可能出现的位置。

任何其他字符都需要用百分比编码(%hh)进行编码。URI的每一部分都有进一步的限制,即哪些字符需要用百分比编码的字来表示。

评论(25)

所有可用于URI(URLURI的一种类型)的有效字符都在RFC 3986中定义。

所有其他的字符都可以在URL中使用,只要它们首先被"URL Encoded"。 这涉及到为特定的"代码"改变无效的字符(通常以百分号(%)的形式,后面跟一个十六进制数字)。

这个链接,HTML URL编码参考,包含一个无效字符的编码列表。

评论(1)

这不是对你的问题的回答,但验证URL真的是一个严重的问题。 你可能最好只验证域名,而不对网址的查询部分进行验证。这是我的经验。 你也可以采用ping网址的方法,看看是否能得到有效的响应,但对于这样一个简单的任务来说,这可能是太多了。

用正则表达式来检测网址是很丰富的,谷歌一下就知道了:)

评论(2)