一、名词解释
  HTML实体字符:

  由于在HTML中有些符号是预留的,比如在html中不能直接使用尖括号(‘<’或‘>’),会被误认为标签符号。所以需要通过HTML实体字符去进行替换;

  HTML实体字符两种形式:

  eg:小于号的HTML实体字符显示方式

  数字形式:<

  实体名形式:&lt;

  注意:使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。

二、常见HTML实体字符
  注释:实体名称大小写敏感!!!

  显示结果 描述 实体名称 实体编号
    空格 &nbsp;  
  < 小于号 &lt; <
  > 大于号 &gt; >
  & 与号 &amp; &
  " 双引号 &quot; "
  ' 单引号 &apos;(IE不支持) '
  全部HTML实体字符表,请查看http://www.w3school.com.cn/tags/html_ref_entities.html

三、转义实用场景-预防XSS攻击

  什么是XSS攻击

    向页面中植入恶意HTML或者恶意脚本,并且使页面提供给其他用户使用。

四、转义、反转义HTML实体字符

  1. /**
  2. * 把html转义成HTML实体字符
  3. * @param str
  4. * @returns {string}
  5. * @constructor
  6. */
  7. function htmlEncode(str) {
  8. var s = "";
  9. if (str.length === 0) {
  10. return "";
  11. }
  12. s = str.replace(/&/g, "&amp;");
  13. s = s.replace(/</g, "&lt;");
  14. s = s.replace(/>/g, "&gt;");
  15. s = s.replace(/ /g, "&nbsp;");
  16. s = s.replace(/\'/g, "'");//IE下不支持实体名称
  17. s = s.replace(/\"/g, "&quot;");
  18. return s;
  19. }
  20.  
  21. /**
  22. * 转义字符还原成html字符
  23. * @param str
  24. * @returns {string}
  25. * @constructor
  26. */
  27. function htmlRestore(str) {
  28. var s = "";
  29. if (str.length === 0) {
  30. return "";
  31. }
  32. s = str.replace(/&amp;/g, "&");
  33. s = s.replace(/&lt;/g, "<");
  34. s = s.replace(/&gt;/g, ">");
  35. s = s.replace(/&nbsp;/g, " ");
  36. s = s.replace(/'/g, "\'");
  37. s = s.replace(/&quot;/g, "\"");
  38. return s;
  39. }

JS对HTML实体字符转义和反转义的更多相关文章

  1. js转义和反转义html

    本文地址: http://www.cnblogs.com/daysme/p/7100553.html 下面的代码网上常用有,但不是想要的. JS实现HTML标签转义及反转义 http://blog.c ...

  2. js转义和反转义html htmlencode htmldecode

    文章目录 JS实现HTML标签转义及反转义 用Javascript进行HTML转义 1.HTML转义 2.反转义 3.一个有意思的认识 4.完整版本的代码 其他 [转义字符]HTML 字符实体< ...

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

    今天我用ueditor时候遇到一个问题: 我从数据库中读取内容进行编辑的时候,不是有一些html标签嘛,从数据库读出来没有问题: 但是我用asp.net mvc,把读取出来的内容通过ueditor的a ...

  4. 【JS】JS实现Html转义和反转义(html编码和解码)的方法总结

    1.JS实现html转义和反转义主要有两种方式: 1).利用用浏览器内部转换器实现html转义: 2).用正则表达式实现html转义: 2.封装的JS工具类: var HtmlUtil = { /*1 ...

  5. 【JavaScript框架封装】JavaScript中的文本字符串的转义和反转义的实现

    如果是想把本地的一个字符串串存到服务器,再次取出来的还是文本的话,就需要这个文本字符串的转义: /** * 对一个字符串的转义 * @param str * @return {*} */ functi ...

  6. 利用StringEscapeUtils对字符串进行各种转义与反转义(Java)

    apache工具包common-lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils,这个工具类是在2.3版本以上加上的去的,利用它能很方便的进行html,xml ...

  7. 使用StringEscapeUtils转义、反转义字符串

    使用commmons-lang.jar中的字符串转义工具类org.apache.commons.lang.StringEscapeUtils转义.反转义字符串,支持CSV.HTML.JAVA.Java ...

  8. 使用StringEscapeUtils对Java中特殊字符进行转义和反转义

    https://blog.csdn.net/zdx1515888659/article/details/84966214 Java中转义字符反斜杠 \ 的代替方法 | repalceAll 内涵解析 ...

  9. Java - 利用StringEscapeUtils对字符串进行各种转义与反转义

    来自:http://blog.csdn.net/chenleixing/article/details/43456987 --------------------------------------- ...

随机推荐

  1. java的四个访问权限修饰符的作用范围

  2. leyou_05_文件上传

    1.搭建一个新的微服务Ly-upload用来上传文件 2.导入文件上传到额依赖 <dependencies> <dependency> <groupId>org.s ...

  3. gulp的安装以及less插件安装与使用

    1.安装node.js 下载地址:http://nodejs.cn/download/ 这时我们输入 node -v  以及  npm -v  检查是否安装成功. 2.为了提高后续使用的快速,我们安装 ...

  4. ArrayList基础知识

    ArrayList简介 ArrayList 的底层是数组队列,相当于动态数组.与 Java 中的数组相比,它的容量能动态增长.在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ...

  5. http协议与servletl理解

    协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器     s ...

  6. log4j 配置文件参数说明

    log4j 框架配置文件常用参数说明 %d 时间(-- ::,) %-5p 日志级别(INFO/DEBUG) %10c 包名(com.xxx.xxx.business.logging) %M 执行的方 ...

  7. C++ 静态绑定与动态绑定------绝不重新定义继承而来的缺省参数

    在了解静态绑定和动态绑定之前,先了解什么是对象的静态类型,什么是对象的动态类型. 对象的静态类型:对象在声明时采用的类型.是在编译器决定的. 对象的动态类型:目前所指对象的类型.是在运行期决定的. 动 ...

  8. poweroj1745: 餐巾计划问题

    传送门 最小费用最大流. 每天拆成两个点,i表示用完的餐巾,i+n表示干净的餐巾. s向i连容量为ri费用为0的边,表示每天用脏的ri条餐巾. i+n向t连容量为ri费用为0的边,表示每天需要用ri条 ...

  9. leyou_01_环境搭建

    1.乐优商城项目搭建 前端技术: 基础的HTML.CSS.JavaScript(基于ES6标准) JQuery Vue.js 2.0以及基于Vue的框架:Vuetify 前端构建工具:WebPack ...

  10. mac mamp host 配置

    <VirtualHost *:80> DocumentRoot "/Users/xuxu/www" ServerName localhost <Directory ...