html的encode以及decode也是在开发中经常遇到的事情,比如针对表单的处理,当用户输入的内容包含html标签时,为了安全起见,提交到后台之前需要进行encode处理,即把类似<div>的内容转义为&lt;div&gt;。

下面就来具体看一下如何实现html的encode以及decode,这里将分别用html dom、js正则匹配、jquery这三种方法实现。

1、通过html dom实现

这里主要是通过document对象创建元素,然后把需要操作的字符串以不同的方式“写进”元素内,最后再通过innerHTML或者textContent(innerText)方法获取处理后的字符串。(注意textContent与innerText的区别)function htmlEncode ( str ) {

var ele = document.createElement('span');

ele.appendChild( document.createTextNode( str ) );

return ele.innerHTML;

}

function htmlDecode ( str ) {

var ele = document.createElement('span');

ele.innerHTML = str;

return ele.textContent || ele.innerText;

}

2、js正则匹配实现

在处理的过程中通过replace方法来对标签及html实体进行互相替换。function htmlEncode ( str ) {

var _str = '';

if ( str.length == 0 ) return '';

_str = str .replace(/&/g, '&');

_str = _str.replace(//g, '>');

return _str;

}

function htmlDecode ( str ) {

var _str = '';

if ( str.length == 0 ) return '';

_str = str .replace(/&/g, '&');

_str = _str.replace(/

_str = _str.replace(/>/g, '>');

_str = _str .replace(/"/g, '"');

return _str;

}

3、通过jQuery内置的html()方法及text()方法实现

这里实现起来就很简单了,如decode:通过$(‘’)创建标签,然后再把需要处理的字符串通过html()方法“写进”span元素中,最后再用text()获取就得到了decode后的内容。function htmlEncodeJQ ( str ) {

return $('').text( str ).html();

}

function htmlDecodeJQ ( str ) {

return $('').html( str ).text();

}

(本文由BeyondWeb.cn原创,转载请注明出处并保留原文链接)

html decode 在线,在js中使用htmlEncode和htmlDecode相关推荐

  1. 【C#】C#中的HtmlEncode与HtmlDecode:HttpUtility.HtmlEncode,Server.HtmlEncode,WebUtility.HtmlEncode

    HtmlEncode(String) 将字符串转换为 HTML 编码字符串. HtmlDecode(String) 将已经为 HTTP 传输进行过 HTML 编码的字符串转换为已解码的字符串. 在we ...

  2. 兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例[转]

    兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例,因为这个在在线编辑器和Ajax中经常用到,所以封装成函数可以直接调用,希望对大家有帮助. <html><h ...

  3. 疯狂的html css,疯狂Html+CSS+JS 中JS总结

    0 总结 本书的JS 第一章有讲语法有挺多常见的坑点和原理解释很不错 第二章DOM编程讲述了挺多API 第三章事件处理机制其实对事件中的this关键字和事件传播顺序讲4. 解还不错 第四章WebSto ...

  4. js中应用protocol buffer

    前段时间公司项目需要用到protocol buffer数据传输协议,这是什么东西,根本没接触过,好好的json干嘛不用?怀着好奇心去了解学习,最后顺利运用.下面是一些是经验,希望能帮到一些人. 首先我 ...

  5. js中WINDOW对象中的navigator成员对象

    js中DOM, DOCUMENT, BOM, WINDOW 区别 全栈工程师开发手册 (作者:栾鹏) js系列教程6-BOM操作全解 js中WINDOW对象中的navigator成员对象 naviga ...

  6. 在 Node.js 中操作 Redis

    在 Node.js 中操作 Redis Node.js 中可以操作 Redis 的软件包推荐列表:https://redis.io/clients#nodejs. 推荐下面两个: node-redis ...

  7. JS中的DOM与BOM

    一.Javascript组成 JavaScript的实现包括以下3个部分: ECMAScript(核心) 描述了JS的语法和基本对象. 文档对象模型 (DOM) 处理网页内容的方法和接口 浏览器对象模 ...

  8. JS中页面跳转,传值包含中文时乱码解决方案

    首先,在JS中将要传递的中文编码:encodeURI(encodeURI(value)): 然后在跳转界面中取值时通过以下方式解码:java.net.URLDecoder.decode(value , ...

  9. JS中的函数定义方式及全局函数

    一.定义方式 方式一用 function定义 定义匿名函数,匿名函数可以被当作参数传递,不需要加入括号 通过内置的function的对象创建函数 <!DOCTYPE html> <h ...

最新文章

  1. vMware vSphere 5.0发布时间
  2. 奇思妙想——我心中的智能自行车
  3. android 线性布局 底部,java – 如何在android线性布局中对齐父底部?
  4. 关于Crypto.PublicKey.RSA,在generate后无法被赋值问题
  5. yum安装php5.6 nginx,CentOS 7 yum安装 Nginx1.16 + MySQL5.5 PHP5.6
  6. 如何找出SAP Fiori launchpad URL start_up请求发起的具体位置
  7. [转载] C++ 中的浮点代码优化
  8. python psutil 进行系统管理 no.2
  9. Stack Overflow 2017 开发者调查报告(程序员必看)
  10. java.util.concurrent.atomic.AtomicBoolean 源码
  11. exfat最佳单元大小_回音壁构造和单元相关的个人看法
  12. 如何获取用户的微信openid
  13. 数据库MySQL(基础六)
  14. 好用全面的电商评论文本情感分析实战教程
  15. iOS 内购 payment.applicationUsername 的坑
  16. php 文章页面阅读全文,纯代码为WordPress文章内容页增加阅读全文展开功能
  17. 文章导引—Jeremy
  18. 第一次博客(比特虫):网站favicon.ico图标介绍,制作
  19. SpringBoot——什么是SpringBoot、SpringBoot入门、创建SpringBoot
  20. 【SpringBoot】SpringBoot三层开发

热门文章

  1. 简单分享怎么开发自己的微信小程序_微信小程序快速制作步骤
  2. Spring AOP 的实现
  3. 关于Ubuntu中Firefox浏览器提示“代理服务器拒绝连接”的解决办法
  4. 深度学习 Fine-tune 技巧
  5. 【UE4闪退解决办法】D3D设备丢失,Unreal Engine is exiting due to D3D device being lost
  6. 找不到引用microsoft.office.core解决办法
  7. vue中页面刷新执行哪个钩子函数使用vue钩子函数mounted
  8. 实习项目(APP线上活动页面)
  9. 对于新手做网赚来说,我有几个建议!
  10. 子沐教你Scrapy——浅谈Python爬虫