文本域特殊字符影响前端取值转换等问题

原创  郑建华   2019-10-11   1062人阅读  0 条评论
摘要:

在使用文本域、富文本编辑器时,如果保存的数据中存在单引号(') 双引号(") 换行符(\r\n)等特殊字符。在某些情况下前端解析数据或展示数据会存在问题。如下:1、后端传递数据使用model方式,前端js中用变量来接收。使用单引号 如 var json='${json}' 时,如果数据中存在(')则会报js错误,同理使用双引号接收,数据中存在双引号一样会出现问题。2、后端传递数据返回的是json字符串,需要取的数据是对象中的某个属性。前端取值时,需要先将

在使用文本域、富文本编辑器时,如果保存的数据中存在单引号(') 双引号(") 换行符(\r\n)等特殊字符。在某些情况下前端解析数据或展示数据会存在问题。如下:

1、后端传递数据使用model方式,前端js中用变量来接收。使用单引号 如 var json='${json}' 时,如果数据中存在(')则会报js错误,同理使用双引号接收,数据中存在双引号一样会出现问题。

2、后端传递数据返回的是json字符串,需要取的数据是对象中的某个属性。前端取值时,需要先将json字符串转成js对象 JSON.parse(json) 如果数据中存在 单引号 双引号 会出现同1 的错误  如果存在 \r\n 转换js对象也会不成功。

3、后端传递数据返回的是json字符串,需要取的数据就是该json字符串。如果前端需要将该字符串拼接到html标签中用于缓存数据,如果数据中存在 单引号 双引号 则html标签结构会被破坏,出现问题。


解决方案:

针对可能出现特殊字符的字段或者内容,在后端先使用URLEncode.encode(json,"UTF-8") 进行编码

在前端获取数据、缓存数据等过程中使用编码后的数据。在最终展示数据时使用decodeURI(json) 进行解码



本文地址:https://www.zjh336.cn/?id=5
版权声明:本文为原创文章,版权归 郑建华 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?