Javascript相当于php的urldecode()

Der*_*air 40 javascript urldecode

我编写了一个自定义的xml解析器,并锁定了特殊字符.所以我很自然地将它们编码到我的数据库中.

我似乎无法找到相当于PHP的urldecode().

是否有任何jquery或javascript的扩展可以实现这一目标?

ken*_*ytm 86

您可以使用decodeURIComponent函数将%xx转换为字符.但是,要转换+为空格,您需要在额外的步骤中替换它们.

function urldecode(url) {
  return decodeURIComponent(url.replace(/\+/g, ' '));
}
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案.我稍微修改它以获取任何变量:`function urldecode(str){if(typeof str!="string"){return str; } return decodeURIComponent(str.replace(/\+/g,'')); }` (3认同)
  • 请注意,这不适用于非标准 utf8 字符。例如“%F7”。php 的 urldecode 仍将存储正确的字节“0xF7”,而“decodeURIComponent”将抛出错误 (2认同)

小智 11

看看这一个

function urldecode (str) {
  return decodeURIComponent((str + '').replace(/\+/g, '%20'));
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然这是对已经建议的答案的一个很好的补充,但你可能应该包括一些建议,说明为什么它会更好/与这里列出的其他选项的权衡. (2认同)