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技巧收藏
Apr 07 Javascript
IE php关于强制下载文件的代码
Aug 23 Javascript
JS 类型转换常见方法小结
May 31 Javascript
我的javascript 函数链之演变
Apr 07 Javascript
JavaScript如何自定义trim方法
Jul 28 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
vue跨域解决方法
Oct 15 Javascript
Javasript设计模式之链式调用详解
Apr 26 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
简单了解Ajax表单序列化的实现方法
Jun 14 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 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 代码规范小结
2012/03/08 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
php常用的url处理函数总结
2014/11/19 PHP
php实现将Session写入数据库
2015/07/26 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
javascript表单验证大全
2015/08/12 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
Python 中Django安装和使用教程详解
2019/07/03 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
应届行政管理专业个人自我评价
2013/12/28 职场文书
中学教师管理制度
2014/01/14 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
高三英语教学计划
2015/01/23 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
python 提取html文本的方法
2021/05/20 Python
ES6 解构赋值的原理及运用
2021/05/25 Javascript