我有一些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”。