如果是想把本地的一个字符串串存到服务器,再次取出来的还是文本的话,就需要这个文本字符串的转义;

 /**
* 对一个字符串的转义
* @param str
* @return {*}
*/
function escapeHTML(str) {
return str.replace(/$/g, '&') // 结尾的字符用&amp替换
.replace(/\</g, '&lt;') // < 用&lt替换
.replace(/\>/g, '&gt;') // > 用&gt替换
.replace(/\'/g, ''') // ' 用&#39替换
.replace(/\"/g, '&quot;'); // " 用&quot替换
} /**
* 对一个字符串的反转义
* @param str
* @return {*}
*/
function unscapeHTML(str) {
// 查找所有的< > & " ' 字符,并替换掉
return str.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')
.replace(/'/g, '\'')
.replace(/&quot;/g, '\"')
.replace(/&amp;/g, '') // String.fromCharCode() 静态方法根据指定的 Unicode 编码中的序号值来返回一个字符串。String.fromCharCode(65,66,67) “ABC”
.replace(/&#(\d+)/g, function ($0, $1) {
//parseInt() 函数将给定的字符串以指定基数(radix/base)解析成为整数。就是 你想把string当成radix进制数解析成10进制
return String.fromCharCode(parseInt($1, 10));
});
}

测试代码如下:

// 转义和反转义的功能测试
var tagText = "<p><b>123&456</b></p>";
// 如果直接打印输出的话,就是一个字符串
console.log(tagText); // <p><b>123&456</b></p>
res = escapeHTML(tagText);
console.log(res); // &ltp&gt&ltb&gt123&456&lt/b&gt&lt/p&gt&amp // 如果把一个字符串转义为实体之后,就不会正常在页面中显示出来内容,只会显示的是一个字符串
document.body.innerHTML = res; // 会显示的是一个字符串,&ltp&gt&ltb&gt123&456&lt/b&gt&lt/p&gt&amp, 但是浏览器也会自动将实体转换解析 // 如果是一个字符串的话,就会直接在网页中显示出来(按照HTML进行解析)
document.body.innerHTML = tagText; // 相当是设置了一段HTML代码 // 对字符反转义之后的结果
res = unscapeHTML(res); // <p><b>123&456</b></p>
console.log(res); // 又恢复到最初始的状态

【JavaScript框架封装】JavaScript中的文本字符串的转义和反转义的实现的更多相关文章

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

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

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

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

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

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

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

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

  5. 【JavaScript框架封装】使用原生js封装的类似于JQuery的框架及核心源码分享(多文件版本)

    这个版本的JQuery是对上一个版本的JQuery,使用了require.js进行了二次封装,基本上把前面的每一个框架封装成为一个单独的模块,最终的目录结构如下: 由于代码量和目录比较多,这个封装好的 ...

  6. 【JavaScript框架封装】自己动手封装一个涵盖JQuery基本功能的框架及核心源码分享(单文件版本)

    整个封装过程及阅读JQuery源码的过程基本上持续了一个月吧,最终实现了一个大概30%的JQuery功能的框架版本,但是里面涉及的知识点也是非常多的,总共的代码加上相关的注释大概在3000行左右吧,但 ...

  7. 【JavaScript框架封装】实现一个类似于JQuery的缓存框架的封装

    // 缓存框架 (function (xframe) { /** * 实现了缓存框架的临时存储功能(内存存储) * @type {{data: Array, get: (function(*): *) ...

  8. 【JavaScript框架封装】使用Prototype给Array,String,Function对象的方法扩充

    /* * @Author: 我爱科技论坛* @Time: 20180705 * @Desc: 实现一个类似于JQuery功能的框架* V 1.0: 实现了基础框架.事件框架.CSS框架.属性框架.内容 ...

  9. 【JavaScript框架封装】公共框架的封装

    /* * @Author: 我爱科技论坛 * @Time: 20180706 * @Desc: 实现一个类似于JQuery功能的框架 // 公共框架 // 种子模块:命名空间.对象扩展.数组化.类型的 ...

随机推荐

  1. confluence中设置应用程序链接到jira

    有时需要在confluence中选中文本直接生成issue或story到jira里. 在"一般配置“->“应用程序链接”中创建即可.

  2. 执行计划中Using filesort,Using temporary相关语句的优化解决

    昨天听开发人员提到,相关的彩票网页当中一个页面刷新的很慢,特别是在提取数据的时候,今天早上一到,便去找开发人员要去相关的也没进行浏览,窥探哪些数据出现了问题,开发人员使用PHP开发,所以我用IE很容易 ...

  3. 0926mysql join的原理

    转自 http://www.cnblogs.com/shengdimaya/p/7123069.html MySQL JOIN原理   先看一下实验的两张表: 表comments,总行数28856 表 ...

  4. 0227浅谈MySQL之 Handler_read_*参数

    转自博客http://www.path8.net/tn/archives/5613 1.监控语法: 在MySQL里,使用SHOW STATUS查询服务器状态,语法一般来说如下: SHOW [GLOBA ...

  5. JAVA数据库连接的另一种实现及简单的数据插入及显示

    教材是JDK8的,家里也可以正规的测试JDK8, 但公司电脑是JDK6的,所以代码要相应的变动一下下,以适应老的TRY语句. Message.java package cc.openhome; imp ...

  6. Android解决使用findViewById时须要对返回值进行类型转换问题的辅助类

    在我们的开发工作时,findViewById可能是用得最多的函数之中的一个.但它特别讨厌的地方就是我们常常须要对返回的view进行类型转换,输入麻烦.代码丑陋,比如曾经我们在Activity中找一些子 ...

  7. ios weak和strong的差别

    The difference is that an object will be deallocated as soon as there are no strong pointers to it. ...

  8. 第17章 Redis概述

    17.2.1 在Windows下安装Redis https://github.com/ServiceStack/redis-windows/tree/master/downloads redis-se ...

  9. office2016专业版激活码

    office2016专业版激活密钥 Office 2016 Pro Plus Retail 版激活密钥:office2016专业版激活码 [Key]:3XJTG-YNBMY-TBH9M-CWB2Y-Y ...

  10. 45.Qt openGL实现三维绘图

    main.cpp #include <QApplication> #include <iostream> #include "tetraheadron.h" ...