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 相关文章推荐
JavaScript 开发规范要求(图文并茂)
Jun 11 Javascript
用jquery与css打造个性化的单选框和复选框
Oct 20 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
Dec 29 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
Jan 13 Javascript
jQuery实现简单二级下拉菜单
Apr 12 Javascript
Bootstrap Table使用方法详解
Aug 01 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
Aug 31 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
小程序云开发如何实现图片上传及发表文字
May 17 Javascript
vue.js实现简单的计算器功能
Feb 22 Javascript
vue-cli点击实现全屏功能
Mar 07 Javascript
详解vue中v-for的key唯一性
May 15 Vue.js
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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
Laravel下生成验证码的类
2017/11/15 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
推荐11个实用Python库
2015/01/23 Python
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python同时替换多个字符串方法示例
2019/09/17 Python
Python集合操作方法详解
2020/02/09 Python
使用Python发现隐藏的wifi
2020/03/04 Python
python各种excel写入方式的速度对比
2020/11/10 Python
Django中ORM的基本使用教程
2020/12/22 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
跟单文员岗位职责
2014/01/03 职场文书
高一生物教学反思
2014/01/17 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
财务部会计岗位职责
2015/02/03 职场文书
新教师个人总结
2015/02/06 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
无故旷工检讨书
2015/08/15 职场文书
环保建议书作文400字
2015/09/14 职场文书
公司新员工欢迎词
2015/09/30 职场文书