最近项目需要,需要从富文本编辑器获取html内容组装json,然后还要把组装后的json对象利用json2转成json字符串,数据放入编辑器提交,由于兼容ie8以上浏览器。所以搞了好久的特殊字符转义,经常出错。我们一般想到的...

最近项目需要,需要从富文本编辑器获取html内容组装json,然后还要
把组装后的json对象利用json2转成json字符串,数据放入编辑器提交,由于兼容ie8以上浏览器。所以搞了好久的特殊字符转义,经常出错。我们一般想到的解决办法就是转义:
/*3.用正则表达式实现html转码*/
function htmlEncodeByRegExp(str){
var s = "";
if(str.length == 0) return "";
s = str.replace(/&/g,"&");
s = s.replace(/</g,"<");
s = s.replace(/>/g,">");
s = s.replace(/ /g,"");
s = s.replace(/\'/g,"'");
s = s.replace(/\"/g,""");
s = s.replace(/\n"/g,"");
s = s.replace(/\r"/g,"");
return s;
}
/*4.用正则表达式实现html解码*/
function htmlDecodeByRegExp (str){
var s = "";
if(str.length == 0) return "";
s = str.replace(/&/g,"&");
s = s.replace(/</g,"<");
s = s.replace(/>/g,">");
s = s.replace(/ /g," ");
s = s.replace(/'/g,"\'");
s = s.replace(/"/g,"\"");
return s;
}
json字符串本身的引号 和 html里面的引号,在转码后没法区分哪些是数据格式,哪些属于从编辑器获取的Html里面的。
后来想到一种解决办法,就是对从富文本编辑器里面的内容进行base64编码,展示的时候再解码,就完全屏蔽掉了所有的特殊字符。
因此采用了jquery.base64.js.具体使用方法是:
编码
dec.val($.base64.btoa(this.value));
// also possible:
// dec.val( $.base64('encode', this.value) );
// dec.val( $.base64.encode(this.value) );
解码
// note: you can pass a third parameter to use the utf8 en- / decode option
enc.val($.base64.atob(this.value, true));
// also possible:
// dec.val( $.base64('decode', this.value) );
// dec.val( $.base64.decode(this.value) );
织梦狗教程
本文标题为:从富文本编辑器获取html内容组装json,特殊字符引起报错解决办法。


基础教程推荐
猜你喜欢
- HTML & CSS 基础 2023-10-26
- 详解JavaScript的计时器和按钮效果设置 2023-08-12
- vue 动态路由component 传递变量报错问题解决 2023-07-09
- javascript – 在HTML5 Web SQL数据库中对日期时间进行排序 2023-10-26
- 如何使用CSS3画出一个叮当猫 2022-11-16
- ajax实现从后台拿数据显示在HTML前端的方法 2023-02-22
- 史上最强vue总结来了,薪资翻倍 2023-10-08
- Mac苹果电脑系统下如何彻底卸载node 2023-08-29
- vue--vue一些基础语法 2023-10-08
- 使用Ajax方法实现Form表单的提交及注意事项 2023-02-14