2010-08-07 123 views

回答

60

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

function urldecode(url) { 
    return decodeURIComponent(url.replace(/\+/g, ' ')); 
} 
+3

优秀的答案。我稍微修改它以取任何变量: 'function urldecode(str){ if(typeof str!=“string”){ return str; } return decodeURIComponent(str.replace(/ \ +/g,'')); }' – 2013-03-12 17:44:27

-1

我认为你需要decodeURI功能。

+0

不完全(见Kenny的答案)。 – 2010-08-07 18:30:43

7

退房这个

function urldecode (str) { 
    return decodeURIComponent((str + '').replace(/\+/g, '%20')); 
} 
+2

虽然对已经建议的答案有很好的补充,但是您可能应该提出一些建议,说明为什么它会更好/与此处列出的其他选项进行权衡。 – EdC 2012-09-15 01:31:00

+0

根据我的理解,这会将'+'变成'%20',这是一个空间的编码值(然后由decodeURIComponent进行解码)。所以从理论上讲,这与接受的答案一样,只是一种不同的做法。 – Matt 2013-09-28 19:13:20