目标 :

前后端通用,规范,实用的html转义与反转义

ps:

网上这种的html转义与反转义博客太多了,并且也更有各的简介,好处是理解的深入,但是不容易统一规范,个人更倾向于规范。加上StringEscapeUtils的转义会把汉字也转义,有的时候也用的不方便,所以采用前端 underscore.js的通用工具类转义。

解决方案

1.前端采用 underscore.js 的_.escape(str) 如果不愿意集成这个js的可以采用下载源码1.8版本,把1342行到1356行copy出来用function就可以
2.后端根据_.escape(str) 源码编写一套相同的转义。 已经写好可以文章后自行下载

为什么这么解决呢?
是因为前后端通用,且规范

代码

1.前端

    <script type="text/javascript" src="js/lib/underscore/underscore.js"></script><script>var source = "<font>chen磊  xing</font>";console.log(source);console.log(_.escape(source));console.log(_.unescape(_.escape(source)));</script>

2.后端

 package com.fanfan.util;import org.apache.commons.lang.StringEscapeUtils;/*** 学习一下 前端Underscorejs 的 思想* * @ClassName UnderscoreUtil* @author <a href="892042158@qq.com" target="_blank">于国帅</a>* @date 2018年8月12日 下午8:02:20**/
public class _ {/*** var escapeMap = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": ''', '`': '`' };* * @Title htmlEncode* @author 于国帅* @date 2018年8月12日 下午8:05:47* @param source* @return String*/public static String escape(String source) {if (source == null) {return source;}StringBuffer buffer = new StringBuffer();char c = ' ';for (int i = 0; i < source.length(); i++) {c = source.charAt(i);switch (c) {case '&':buffer.append("&amp;");break;case '<':buffer.append("&lt;");break;case '>':buffer.append("&gt;");break;case '"':buffer.append("&quot;");break;case '\'':buffer.append("#x27;");break;case '`':buffer.append("&#x60");break;default:buffer.append(c);}}return buffer.toString();}public static void main(String[] args) {String source = "<font>chen磊  xing</font>";System.err.println("StringEscapeUtils的转义   汉字也会被转义");System.err.println(StringEscapeUtils.escapeHtml(source));System.err.println("模拟 underscore.js的转义");System.err.println(_.escape(source));}
}

控制台打印

超级简单的 html 转义与反转义相关推荐

  1. java中jq转移符,使用StringEscapeUtils对Java中特殊字符进行转义和反转义

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

  2. TML转义字符:xss攻击与HTML字符的转义和反转义

    xss与转义符 xss简单来说: XSS 攻击是页面被注入了恶意的代码 XSS 漏洞是 可以让攻击者注入恶意代码可执行的漏洞 具体参看之前写的: web开发前端安全问题总结--web前端安全问题汇总  ...

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

    版权声明:本文为博主原创文章,未经博主允许不得转载.更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/ ...

  4. php 转义字符处理,PHP转义与反转义字符串函数详解

    在PHP语言中,字符串的转义与反转义是可以使用PHP提供的自有函数addslashes()函数和stripslashes()函数来实现. 1. addslashes()函数 addslashes() ...

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

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

  6. fastjson html 转义,JSONString的转义和反转义

    jar包 org.apache.commons commons-lang3 3.8.1 org.apache.commons commons-text 1.8 代码 import com.alibab ...

  7. html转义和反转义

    我们把一段html代码存入数据库中,然后我们读取出来的时候,系统就给我们转义了 这时候我们把这段显示在html中就显示不出来本来的效果,只能显示一段文本 这时候我们据需要反转义了 //HTML反转义 ...

  8. html转义字符解码,js对html转义和反转义以及编码和解码

    在项目开辟过程当中,我会有时候赶上如许的一个营业需求:对从数据库中读取出来的html数据举行反转义,才在当前网页当前举行衬着. 或许另一个需求,对编辑器中的文本举行编码再传进数据库,或许从库中读取的数 ...

  9. js对html转义和反转义以及编码和解码

    js对html转义和反转义以及编码和解码 在项目开发过程中,我会有时候遇上这样的一个业务需求:对从数据库中读取出来的html数据进行反转义,才能在当前网页当前进行渲染. 或者另一个需求,对编辑器中的文 ...

最新文章

  1. 一篇文章能够看懂基础代码之CSS
  2. POJ 2151 Check the difficulty of problems (概率dp)
  3. RabbitMQ消息发送和接收
  4. Struts2漏洞和Struts Scan工具实战
  5. new 实例化对象是啥意思_前端经典面试题解密:JS的new关键字都干了什么?
  6. 华语乐坛趋势报告(2022)
  7. C#LeetCode刷题之#263-丑数(Ugly Number)
  8. Redis学习-string数据类型
  9. 烂泥:更换ESXI5.0管理网卡及管理IP地址
  10. 又忙了一天,什么书也不看。
  11. 数据的转换(shp sde mdb 之间的转换)
  12. Windows2003内置用户组介绍
  13. python和java哪个好找工作-2019年Python、Java、C++学哪个更好?薪资更高?
  14. 拓端tecdat|Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化
  15. 2018-08-31 基于CSS3D视角,实现视差滚动
  16. 基于GraphQL的数据网关实现
  17. 计算机安装系统后鼠标无法使用,重装系统后鼠标不能用
  18. 非科班、跨行业的如何走前端这条路?
  19. 拜耳再投4亿元提升在华处方药产能;阿斯利康进博会公布新冠疫苗最新进展 | 美通企业日报...
  20. vue自定义表格(每一列表格下面包含一个子表格)

热门文章

  1. Android 10.0 禁用Recent键(任务键)
  2. 文章入选人工智能内容榜第一名
  3. Servlet_W3School
  4. 计算机视觉光源分类、特点及其优化方法
  5. 在线问题反馈模块实战(十八):实现excel台账文件记录批量导入功能
  6. Linux网络编程基础1(网络应用程序设计模式,分层模型,协议格式)
  7. 2-4HTML和CSS\第1节 概念介绍\第2节 基本标签
  8. 中移动自有手机操作系统--OMS布局移动互联网!
  9. 交换机的Access口与Trunk口
  10. mingw报未定义引用gdi32中函数,undefined reference to `__imp_CreateCompatibleDC‘错误解决办法