• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > JS实现HTML标签转义及反转义

JS实现HTML标签转义及反转义

作者:wangyuheng77 字体:[增加 减小] 来源:互联网 时间:2017-05-11

wangyuheng77通过本文主要向大家介绍了js转义html标签,js html转义,js特殊字符转义,js单引号转义,js双引号转义等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

简单说一下业务场景,前台用户通过input输入内容,在离开焦点时,将内容在div中显示。

这时遇到一个问题,如果用户输入了html标签,则在div显示中,标签被解析。

由于是纯前端操作,不涉及后端,因此需要通过js对输入内容进行转义。

这里提供一个非常简单有效的转义方案,利用了innerHTML和innerText

注:火狐不支持innerText,需要使用 textContent 属性,而IE早期版本不支持此属性,为了同时兼容IE及火狐,需要进行判断操作.

因为innerText(textContent)会获取纯文本内容,忽略html节点标签,而innerHTML会显示标签内容,

所以我们先将需转义的内容赋值给innerText(textContent),再获取它的innerHTML属性,这时获取到的就是转义后文本内容。

代码如下:

function HTMLEncode(html) {
 var temp = document.createElement("div");
 (temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);
 var output = temp.innerHTML;
 temp = null;
 return output;
}
var tagText = "<p><b>123&456</b></p>";
console.log(HTMLEncode(tagText));//<p><b>123&456</b></p> 
</div>

通过测试结果,可以看到html标签及&符都被转义后保存。

同理,反转义的方法为先将转义文本赋值给innerHTML,然后通过innerText(textContent)获取转义前的文本内容

function HTMLDecode(text) { 
 var temp = document.createElement("div"); 
 temp.innerHTML = text; 
 var output = temp.innerText || temp.textContent; 
 temp = null; 
 return output; 
} 
var tagText = "<p><b>123&456</b></p>";
var encodeText = HTMLEncode(tagText);
console.log(encodeText);//<p><b>123&456</b></p>
console.log(HTMLDecode(encodeText)); //<p><b>123&456</b></p> 
</div>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JS及JQuery对Html内容编码,Html转义
  • js 动态生成html 触发事件传参字符转义的实例
  • JS实现HTML标签转义及反转义

相关文章

  • 2017-05-11Javascript实现登录记住用户名和密码功能
  • 2017-05-11微信小程序商城项目之商品属性分类(4)
  • 2017-05-11js 作用域和变量详解
  • 2017-05-1180%应聘者都不及格的JS面试题
  • 2017-05-11vue.js学习笔记:如何加载本地json文件
  • 2017-05-11JS判断指定dom元素是否在屏幕内的方法实例
  • 2017-05-11使用JS在浏览器中判断当前网络连接状态的几种方法
  • 2017-05-11js获取json中key所对应的value值的简单方法
  • 2017-05-11javascript设计模式之模块模式学习笔记
  • 2017-05-11jQuery对table表格进行增删改查

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • JS常见算法详解
    • jQuery和CSS仿京东仿淘宝列表导航菜单
    • bootstrap 模态框(modal)实现水平垂直居中显示
    • JavaScript实现实时更新系统时间的实例代码
    • js获取地址栏中传递的参数(两种方法)
    • jQuery中table数据的值拷贝和拆分
    • 使用ionic在首页新闻中应用到的跑马灯效果的实现方法
    • JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
    • 详解Angualr 组件间通信
    • JavaScript计时器用法分析【setTimeout和clearTimeout】

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有