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 option删除代码集合
Nov 12 Javascript
用方法封装javascript的new操作符(一)
Dec 25 Javascript
基于jquery实现的表格分页实现代码
Jun 21 Javascript
js动画(animate)简单引擎代码示例
Dec 04 Javascript
jscript读写二进制文件的方法
Apr 22 Javascript
浅谈$(document)和$(window)的区别
Jul 15 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
Sep 25 Javascript
JavaScript中引用vs复制示例详析
Dec 06 Javascript
Vue中CSS动画原理的实现
Feb 13 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
Aug 30 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 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 配置文件中open_basedir选项作用
2009/07/19 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
html5实现滑块功能之type=&quot;range&quot;属性
2020/02/18 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
高中毕业自我鉴定
2013/12/13 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
先进党支部申报材料
2014/12/24 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL