我使用 serialize()
来获取表单值,为了取回值,我拆分了序列化的字符串,但这些值是 uri 编码的,例如“@”被替换为“%40”,我使用 decodeURIComponent()
进行解码,问题看起来已经解决但仍然我正在用“+”号替换空格。可以使用 string.replace()
但它会替换字符串中我合法的“+”符号。如何实现?
最佳答案
如果字符串中有合法的 +
,它就会被编码为 %2B
。因此,在对字符串调用 decodeURIComponent()
之前,将所有表示字符串中空格的 +
替换为空格,然后调用 decodeURIComponent()
对字符串进行解码。
使用此代码
var str = "%4Bseri%2Balized+String+plus"
str = str.replace(/\+/g, " ");
str = decodeURIComponent(str);
alert(str);
Demo
关于javascript - 反序列化表单值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9043314/