我使用 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/

10-15 09:56