JS转换HTML转义符

//去掉html标签

function removeHtmlTab(tab) {
return tab.replace(/<[^<>]+?>/g,'');//删除所有HTML标签
}

//普通字符转换成转意符

function html2Escape(sHtml) {
return sHtml.replace(/[<>&"]/g,function(c){return {'<':'&lt;','>':'&gt;','&':'&amp;','"':'&quot;'}[c];});
}

//转意符换成普通字符

function escape2Html(str) {
var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'};
return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];});
}

//  转成空格

function nbsp2Space(str) {
var arrEntities = {'nbsp' : ' '};
return str.replace(/&(nbsp);/ig, function(all, t){return arrEntities[t]})
}

//回车转为br标签

function return2Br(str) {
return str.replace(/\r?\n/g,"<br />");
}

//去除开头结尾换行,并将连续3次以上换行转换成2次换行

function trimBr(str) {
str=str.replace(/((\s|&nbsp;)*\r?\n){,}/g,"\r\n\r\n");//限制最多2次换行
str=str.replace(/^((\s|&nbsp;)*\r?\n)+/g,'');//清除开头换行
str=str.replace(/((\s|&nbsp;)*\r?\n)+$/g,'');//清除结尾换行
return str;
}

// 将多个连续空格合并成一个空格

function mergeSpace(str) {
str=str.replace(/(\s|&nbsp;)+/g,' ');
return str;
}

JS编码解码 
一、定义和用法 
encodeURI() 函数可把字符串作为 URI 进行编码。

语法 
encodeURI(URIstring) 
参数 描述 
URIstring 必需。一个字符串,含有 URI 或其他要编码的文本。 
返回值 
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明 
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。

该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

提示和注释 
提示:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

此方法的解码为decodeURI()

二、定义和用法

escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

语法 
escape(string) 
参数 描述 
string 必需。要被转义或编码的字符串。 
返回值 
已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。

说明 
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。其他所有的字符都会被转义序列替换。

提示和注释 
提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。

注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。

三、JavaScript encodeURIComponent() 函数

定义和用法 
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。

语法 
encodeURIComponent(URIstring) 
参数 描述 
URIstring 必需。一个字符串,含有 URI 组件或其他要编码的文本。 
返回值 
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明 
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

提示和注释 
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。 
此方法解码方式decodeURIComponent

不懂的通知可以查看一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别

转自:

https://blog.csdn.net/wbbott/article/details/79074184

JS转换HTML转义符,编码及解码的更多相关文章

  1. JS转换HTML转义符

    JS转换HTML转义符 //去掉html标签 function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,'') ...

  2. JS 转换HTML转义符

    JS转换HTML转义符   //去掉html标签 1 2 3 function removeHtmlTab(tab) {  return tab.replace(/<[^<>]+?& ...

  3. JS转换HTML转义符 [转]

    最近有个需求,就是后台系统编辑文章内容存到后台,前端这边获取到是转义后的字符串,如果直接将转义后的内容写在页面上,html标签不会被解析.网上找到觉得不错的功能函数,这里记录一下 //去掉html标签 ...

  4. JS转换HTML转义符,防止javascript注入攻击,亲测可用

    function removeHtmlTab(tab) {  return tab.replace(/<[^<>]+?>/g,'');//删除所有HTML标签 } functi ...

  5. js和C#中的编码和解码

    同一个字符串,用URL编码和HTML编码,结果是完全不同的. JS中的URL编码和解码.对 ASCII 字母和数字及以下特殊字符无效: - _ . ! ~ * ' ( ) ,/?:@&=+$# ...

  6. js与java encodeURI 进行编码与解码

    JS escape()使用转义序列替换某些字符来对字符串进行编码  JavaScript 中国 编码后 JavaScript %u4E2D%u56FD unescape()对使用   encodeUR ...

  7. coding++:js实现基于Base64的编码及解码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Razor 将C#对象转换成Javascript对象, json还原被转码的字符 &quot·· HTML转义符

    Razor 将C#对象转换成Javascript对象 在Razor中使用Json字符串,特殊字符被自动转义(如:\"->") @{ var jsonStr = Html.Ra ...

  9. Java中的字节,字符与编码,解码

    ASCII编码 ASCII码主要是为了表示英文字符而设计的,ASCII码一共规定了128个字符的编码(0x00-0x7F),只占用了一个字节的后面7位,最前面的1位统一规定为0. ISO-8859-1 ...

随机推荐

  1. Eclipse链接数据库

    在eclipse中找到数据库 选择数据库 然后点击next 填写数据库信息 选择需要执行的SQL语句 ALT+X 或者 右键点击execute selected text: 执行结果: 有问题请在评论 ...

  2. 面向对象_del

    老师的博客http://www.cnblogs.com/Eva-J/articles/7351812.html#_label7 内置的方法有很多不一定全都在object中 #python3中,所有类都 ...

  3. 新的编辑工具IDE

    因为最近一段时间前端都是用EXTJS开发,之前用vs2012来编辑extjs,感觉缺少智能感应,很不方便.后来发现一款工具Visual Studio Code,非常棒. VS Code是免费,轻量,跨 ...

  4. 使用idea搭建Scala 项目

    主要内容 Intellij IDEA开发环境简介 Intellij IDEA Scala开发环境搭建 Intellij IDEA常见问题及解决方案 Intellij IDEA常用快捷键 1. Inte ...

  5. kafka-rest:A Comprehensive, Open Source REST Proxy for Kafka

    Ewen Cheslack-Postava  March 25, 2015  时间有点久,但讲的还是很清楚的 As part of Confluent Platform 1.0 released ab ...

  6. ideal中把项目打成war包,并放在tomcat运行,遇见的问题。。。

    先说下我遇见的问题吧:最近做项目要把项目放在tomcat上运行,用的springboot框架, 在建项目时选择的是  jar包,项目写完要部署打包是,在pom中虽然把包改成了war ,可是每次放入to ...

  7. python实现数据结构单链表

    #python实现数据结构单链表 # -*- coding: utf-8 -*- class Node(object): """节点""" ...

  8. MySQL数据库引擎类别和更换方式

    MySQL数据库引擎类别 能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEA ...

  9. node+mysql 数据库连接池

    1. 什么是数据库连接池? 数据库连接池是程序启动时建立足够的数据库连接,并将这些连接组成一个池,由程序动态地对池中的连接进行申请,使用和释放. 2. 使用数据库连接池原理及优点是什么? 数据库连接池 ...

  10. 手动用tomcat启动war包,无法访问web项目

    先说一下自己采的小坑,网上大多解答都是复制来复制去,不说重点在哪.我这里简单总结下访问路径问题 一.用idea打成war包,具体步骤如下图: 步骤:在项目配置选Artifacts新建Web Appli ...