HTML的Encode(转码)和解码(Decode)在平时的开发中也是经常要处理的,在这里总结了使用 处理HTML的Encode(转码)和解码(Decode)的常用方式
一、用浏览器内部转换器实现转换
1.1.用浏览器内部转换器实现html转码
首先动态创建一个容器标签元素,如DIV,然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持),最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了。
1.2.用浏览器内部转换器实现html解码
首先动态创建一个容器标签元素,如DIV,然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持),最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。
1.3.具体实现代码
1 var HtmlUtil = {
2 /*1.用浏览器内部转换器实现html转码*/
3 htmlEncode:function (html){
4 //1.首先动态创建一个容器标签元素,如DIV
5 var temp = document.createElement (\"div\");
6 //2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持)
7 (temp.textContent != undefined ) ? (temp.textContent = html) : (temp.innerText = html);
8 //3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了
9 var output = temp.innerHTML;
10 temp = null;
11 return output;
12 },
13 /*2.用浏览器内部转换器实现html解码*/
14 htmlDecode:function (text){
15 //1.首先动态创建一个容器标签元素,如DIV
16 var temp = document.createElement(\"div\");
17 //2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持)
18 temp.innerHTML = text;
19 //3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。
20 var output = temp.innerText || temp.textContent;
21 temp = null;
22 return output;
23 }
24 };
测试:
1 var html = \"<br>aaaaaa<p>bbbb</p>\"; 2 var encodeHtml = HtmlUtil.htmlEncode(html); 3 alert(\"encodeHtml:\" + encodeHtml); 4 var decodeHtml = HtmlUtil.htmlDecode(encodeHtml); 5 alert(\"decodeHtml:\" + decodeHtml);
运行结果:
二、用正则表达式进行转换处理
使用正则表达式也是一种常用的处理方式,实现原理就是使用替换的方式来实现转码和解码,转码时把<>,空格符,&,\',\"\"替换成html编码,解码就把html编码替换成对应的字符,实现代码如下:
1 var HtmlUtil = {
2 /*1.用正则表达式实现html转码*/
3 htmlEncodeByRegExp:function (str){
4 var s = \"\";
5 if(str.length == 0) return \"\";
6 s = str.replace(/&/g,\"&\");
7 s = s.replace(/</g,\"<\");
8 s = s.replace(/>/g,\">\");
9 s = s.replace(/ /g,\" \");
10 s = s.replace(/\\\'/g,\"'\");
11 s = s.replace(/\\\"/g,\""\");
12 return s;
13 },
14 /*2.用正则表达式实现html解码*/
15 htmlDecodeByRegExp:function (str){
16 var s = \"\";
17 if(str.length == 0) return \"\";
18 s = str.replace(/&/g,\"&\");
19 s = s.replace(/</g,\"<\");
20 s = s.replace(/>/g,\">\");
21 s = s.replace(/ /g,\" \");
22 s = s.replace(/'/g,\"\\\'\");
23 s = s.replace(/"/g,\"\\\"\");
24 return s;
25 }
26 };
测试代码:
1 var html = \"<br>ccccc<p>aaaaa</p>\"; 2 var encodeHTML = HtmlUtil.htmlEncodeByRegExp(html); 3 alert(\"用正则表达式进行html转码,encodeHTML:\" + encodeHTML); 4 var decodeHTML = HtmlUtil.htmlDecodeByRegExp(\"用正则表达式进行html解码:\" + encodeHTML); 5 alert(decodeHTML);
测试结果:
继续阅读与本文标签相同的文章
上一篇 :
省份二级联动
下一篇 :
NBA+大数据,数字经济重塑体育帝国!
-
受用一生的高效 PyCharm 使用技巧(六)
2026-05-19栏目: 教程
-
用户数从 0 到亿,我的 K8s 踩坑血泪史
2026-05-19栏目: 教程
-
PgSQL · 特性分析 · 浅析PostgreSQL 中的JIT
2026-05-19栏目: 教程
-
在AlibabaCloud上,如何使用AD FS进行 【角色SSO】 并完成在容器服务ACK集群中的身份验证
2026-05-19栏目: 教程
-
骚操作 !用 Python 偷偷抓取女朋友的行踪(女朋友在哪里)
2026-05-19栏目: 教程
您的足迹:
