URL中有哪些字符有效?

ble*_*lez 53 html url

可能重复:
哪个字符使网址无效?

我正在尝试删除大字符串的非URL部分.我发现的大多数正则表达式都是这样的[A-Za-z0-9-_.!~*'()],但是有更多可以包含url的东西.像http://127.0.0.1:8080/test?v=123#this例如

那么有效网址的最新字符是什么?

编辑:

他们似乎是:

A-Za-z0-9 -._〜:/?#[] @!$&'()*+ ,; =和%后跟十六进制值

cki*_*tel 96

所有的血腥细节都可以在当前关于主题的RFC中找到: RFC 3986(统一资源标识符(URI):通用语法)

基于此相关的答案,你在看,看起来像一个列表:A-Z,a-z,0-9,-,.,_,~,:,/,?,#,[,],@,!,$,&,',(,),*,+,,,;,和%.其他一切都必须进行网址编码.此外,其中一些字符只能存在于URI中非常特定的位置,RFC具有所有这些细节.

  • `http:// example.com/hello%20world`是一个有效的URL,因此字符`%`在URL中有效,应该在列表中. (23认同)
  • @ckittel你的回答充其量是模棱两可的.您想澄清一下您的想法吗?问题是URL中的字符有效.它不是要问哪些角色需要转义.除了`%`之外的其他字符,例如`/`,具有特殊含义,需要进行转义才能使它们成为路径组件数据的一部分; 但这不是问题. (13认同)
  • 只是提到其中一些('/','?','#','&','+')有效,在具有查询组件的URL中提供特定功能,不会被视为常规字符 (8认同)
  • 注意:此列表不包含百分号 (7认同)
  • 这是正确的@thomasrutter,%用于url编码.需要将%表示为%25才能在URI中使用.来自RFC:因为百分比("%")字符用作百分比编码八位字节的指示符,所以必须将该八位字节的百分比编码为"%25",以用作URI中的数据. (4认同)