记录一个小bug...

前言废话:

1. 功能需求:修改输入框的内容,获取字符串传给后端保存。

2. bug历程:刚开始直接获取value值传过去。后来测试发现%&这些特殊字符无法传递后,在前端用encodeURIComponent()方法对输入框内容进行特殊字符编码,后端解码即可。后来测试又发现在内容中加入反斜杠 \ 又会有问题。

解决方法,一句代码:

encodeURIComponent(str.replace(/\\/g,"\\\\"));

简单解释一下:

encodeURIComponent编码反斜杠 \ (正则匹配)-LMLPHP

看图,声明单个反斜杠都会报错,因为编码语言中,反斜杠 \ 代表转义,它和紧跟它的字符构成了转义字符,例如 "\" " 表示字符 "

所以转义字符中用 '\\' 表示一个反斜杠字符 '\' ,

待完善 ~~

05-11 13:41