【JavaScript框架封装】JavaScript中的文本字符串的转义和反转义的实现
如果是想把本地的一个字符串串存到服务器,再次取出来的还是文本的话,就需要这个文本字符串的转义;
/**
* 对一个字符串的转义
* @param str
* @return {*}
*/
function escapeHTML(str) {
return str.replace(/$/g, '&') // 结尾的字符用&替换
.replace(/\</g, '<') // < 用<替换
.replace(/\>/g, '>') // > 用>替换
.replace(/\'/g, ''') // ' 用'替换
.replace(/\"/g, '"'); // " 用"替换
}
/**
* 对一个字符串的反转义
* @param str
* @return {*}
*/
function unscapeHTML(str) {
// 查找所有的< > & " ' 字符,并替换掉
return str.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/'/g, '\'')
.replace(/"/g, '\"')
.replace(/&/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); // <p><b>123&456</b></p>&
// 如果把一个字符串转义为实体之后,就不会正常在页面中显示出来内容,只会显示的是一个字符串
document.body.innerHTML = res; // 会显示的是一个字符串,<p><b>123&456</b></p>&, 但是浏览器也会自动将实体转换解析
// 如果是一个字符串的话,就会直接在网页中显示出来(按照HTML进行解析)
document.body.innerHTML = tagText; // 相当是设置了一段HTML代码
// 对字符反转义之后的结果
res = unscapeHTML(res); // <p><b>123&456</b></p>
console.log(res); // 又恢复到最初始的状态

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
TOMCAT部署
# java下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html [root@kazihuo ~]# mkdir -pv /usr/java [root@kazihuo ~]# tar -axvf jdk-8u151-linux-x64.tar.gz -C /usr/java/ [root@kazihuo ~]# vim /etc/profile.d/java.sh #创建文件并添加以下信息; JAVA_HOME=/usr/java/jdk1.8.0_151 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH [root@kazihuo ~]# source /etc/profile.d/java.sh [root@kazihuo ~]# java -version java version "1.8.0_151" J...
-
下一篇
【Nebula系列】通过UNIX域套接字传递描述符的应用
传送文件描述符是高并发网络服务编程的一种常见实现方式。Nebula 高性能通用网络框架即采用了UNIX域套接字传递文件描述符设计和实现。本文详细说明一下传送文件描述符的应用。 1. TCP服务器程序设计范式 开发一个服务器程序,有较多的的程序设计范式可供选择,不同范式有其自身的特点和实用范围,明了不同范式的特性有助于我们服务器程序的开发。常见的TCP服务器程序设计范式有以下几种: 迭代服务器 并发服务器,每个客户请求fork一个子进程 预先派生子进程,每个子进程无保护地调用accept 预先派生子进程,使用文件上锁保护accept 预先派生子进程,使用线程互斥锁上锁保护accept 预先派生子进程,父进程向子进程传递套接字描述符 并发服务器,每个客户端请求创建一个线程 预先创建线程服务器,使用互斥锁上锁保护accept 预先创建线程服务器,由主线程调用accept 当系统负载较轻时,传统的并发服务器程序模型就够了。相对于传统的每个客户一次fork设计,预先创建一个进程池或线程池可以减少进程控制CPU时间,大约可减少10倍以上。 某些实现允许多个子进程或线程阻塞在acce...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- 2048小游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音