将 + 号提交到数据库
第一种解决方案:
我们可以在前台获得字符串的时候,将”+”号转换为”%2B”.
comment=comment.replace(/\+/g,"%2B");// \为转义1
我自己实践了一些,发现此方法可以!挺好的一种方法
第二种解决方案:
在我们服务器端执行的,也就是我们自己将空格转换为+号,但是,思考一下,就会发现此方法也不行,因为会将空格与+号混淆。
第三种解决方案:
也就是自己构建特殊字符,来写一个简单的传输协议,代替+号,
例如我们在前台的时候,如果有人输入+号,我们就把它转换为: “*jiahao;”,这个字符串可以自己定义,然后我们后台再解析成对应的+号。
前台JS:
comment=comment.replace(/\+/g,"*jiahao;");// \为转义1
Java后台解析回去:
message = message.replace("*jiahao;", "+");
//注意,这里如果用replaceAll,要注意正则表达式中的特殊字符转义!12
此种方法可行,但是麻烦啊,还得自己转来转去的。
第四种解决方案:
前台JS使用encodeURIComponent函数。
comment=window.encodeURIComponent(comment);
其实这个函数也就是将+替换成了%2B
所以,如果遇到特殊符号了,用这个函数就可以了!
还有,encodeURI()这个函数解决不了+号这个特殊字符的传参变成空格的问题!
转自:将 + 号提交到数据库