javascript对HTML字符转义与反转义


Posted in Javascript onDecember 13, 2018

1.背景:在项目中,经常遇到一些字符需要进行转义后才能显示到界面上,如“&”,在界面中显示的是“&”,在html中书写“&”,显示在界面的中的依然是“&”。

这时候,就需要进行转义

 javascript对HTML字符转义与反转义

2.解决方案

<script>

var HtmlUtil = {

 /*1.用浏览器内部转换器实现html转码*/

 htmlEncode:function (html){

 //1.首先动态创建一个容器标签元素,如DIV

 var temp = document.createElement ("div");

 //2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持)

 (temp.textContent != undefined ) ? (temp.textContent = html) : (temp.innerText = html);

 //3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了

 var output = temp.innerHTML;

 temp = null;

 return output;

 },

 /*2.用浏览器内部转换器实现html解码*/

 htmlDecode:function (text){

 //1.首先动态创建一个容器标签元素,如DIV

 var temp = document.createElement("div");

 //2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持)

 temp.innerHTML = text;

 //3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。

 var output = temp.innerText || temp.textContent;

 temp = null;

 return output;

 },

 /*3.用正则表达式实现html转码*/

 htmlEncodeByRegExp:function (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; 

 },

 /*4.用正则表达式实现html解码*/

 htmlDecodeByRegExp:function (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; 

 }

 };

</script>

使用方法:HtmlUtil.htmlDecodeByRegExp("&")

PS:使用正则

使用正则转码:

var value = document.getElementById('input').value.trim();
 //对用户输入进行转义
 value = value.replace(/&/g,"&");
 value = value.replace(/</g,"<");
 value = value.replace(/>/g,">");
 value = value.replace(/ /g," ");
 value = value.replace(/"/g,'"');

使用正则解码:

var value = e.target.innerText;
 // value = decodeURIComponent(value);
 value = value.replace(/&/g,"&");
 value = value.replace(/</g,"<");
 value = value.replace(/>/g,">");
 value = value.replace(/ /g," ");
 value = value.replace(/"/g,"'");

下面是其他网友的补充

在编写html时,经常需要转义,才能正常显示在页面上。

并且,还可以防止xss。

解决方案:

一, 使用正则:

使用正则转码:

var value = document.getElementById('input').value.trim();
 //对用户输入进行转义
 value = value.replace(/&/g,"&");
 value = value.replace(/</g,"<");
 value = value.replace(/>/g,">");
 value = value.replace(/ /g," ");
 value = value.replace(/"/g,'"');

使用正则解码:

var value = e.target.innerText;
// value = decodeURIComponent(value);
 value = value.replace(/&/g,"&");
 value = value.replace(/</g,"<");
 value = value.replace(/>/g,">");
 value = value.replace(/ /g," ");
 value = value.replace(/"/g,"'");

由于编辑器的编码问题,其实就是

将<用<替换,>替换为>,空格替换为 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js类 from qq
Nov 13 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
May 08 Javascript
js设置控件的隐藏与显示的两种方法
Aug 21 Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 Javascript
PHP实现的各种中文编码转换类分享
Jan 23 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
Jun 19 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
Sep 27 Javascript
JS键盘版计算器的制作方法
Dec 03 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 Javascript
Vue登录主页动态背景短视频制作
Sep 21 Javascript
浅谈JavaScript 声明提升
Sep 14 Javascript
Web安全之XSS攻击与防御小结
Dec 13 #Javascript
JavaScript实现邮箱后缀提示功能的示例代码
Dec 13 #Javascript
深入理解js A*寻路算法原理与具体实现过程
Dec 13 #Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
Dec 13 #Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
Dec 13 #Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
Dec 13 #Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 #Javascript
You might like
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php适配器模式介绍
2012/08/14 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
利用Psyco提升Python运行速度
2014/12/24 Python
Python中生成器和yield语句的用法详解
2015/04/17 Python
python关闭windows进程的方法
2015/04/18 Python
python创建关联数组(字典)的方法
2015/05/04 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
应届生财务会计求职信
2013/11/05 职场文书
秋天的雨教学反思
2014/04/27 职场文书
倡议书格式模板
2014/05/13 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
入党积极分子群众意见
2015/06/01 职场文书
导游词之镜泊湖
2019/12/09 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
Nginx 匹配方式
2022/05/15 Servers