我有一些PHP的urlencode输出的html-基本上,这是一堆看起来像这样的简单锚点:

<a href="#i+have+some+spaces">link1</a>


我正在使用jquery查看所有这些单击时的引用,但是,我似乎无法使用浏览器的任何内部函数对其进行解码。我必须自己替换+吗?

unescape('Video+Games');    // returns Video+Games
decodeURI('Video+Games');   // returns Video+Games
decodeURIComponent('Video+Games');  // returns Video+Games

最佳答案

我认为您需要做自己的.replace(),如下所示:

href.replace(/\+/g, ' ');




编辑:我以为我有一个MDC文档指定了此,但我现在可以找到的最接近的是此注释。

https://developer.mozilla.org/Talk:en/JavaScript/Reference/Global_Objects/decodeURIComponent

我可能一直在考虑MDC encodeURIComponent docs中的注释:


  对于application / x-www-form-urlencoded(POST),对于每个http://www.w3.org/TR/html401/interac...m-content-type,空格都应用'+'代替,因此可能希望在encodeURIComponent替换之后加上“ +”再替换“%20”。

09-10 11:31
查看更多