JS转换HTML转义符 [转]

安全分
• 阅读 4485

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

//去掉html标签

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

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

function html2Escape(sHtml) { 
 return sHtml.replace(/[<>&"]/g,function(c){return {'<':'<','>':'>','&':'&','"':'"'}[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| )*\r?\n){3,}/g,"\r\n\r\n");//限制最多2次换行 
 str=str.replace(/^((\s| )*\r?\n)+/g,'');//清除开头换行 
 str=str.replace(/((\s| )*\r?\n)+$/g,'');//清除结尾换行 
 return str; 
}

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

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

参考文章

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Stella981 Stella981
3年前
SVG跟随父级DIV自适应
后台返回过来的是这样的SVG标签<svgwidth"100%"height"100%"version"1.1"xmlns"http://www.w3.org/2000/svg"<gtransform"translate(00)"
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
JS dom节点
1.DOM操作内容1.innerText属性document.getElementById("box").innerText;//获取文本内容(如有html直接过滤掉)document.getElementById("box").innerText"Mr.Lee";//设置文本(如有html转义)
Easter79 Easter79
3年前
SVG跟随父级DIV自适应
后台返回过来的是这样的SVG标签<svgwidth"100%"height"100%"version"1.1"xmlns"http://www.w3.org/2000/svg"<gtransform"translate(00)"
Stella981 Stella981
3年前
React重点概要
JSX语法:1.ReactDOM.render:用于将模板转换为HTML语言,并插入指定的DOM节点; 语法规则:遇到HTML标签(以<开头),就用HTML规则解析,HTML语言直接写在JavaScript语言之中,不加任何引号<divid"example"</div<sc
Easter79 Easter79
3年前
SpringMvc接受特殊符号参数被转义
WEB开发时,在前端通过get/post方法传递参数的时候 如果实参附带特殊符号,后端接收到的值中特殊符号就会被转义例如该请求: http://localhost:10001/demo/index.do?name张三(1)注:中文()不会出现此种情况后台就收到的实际name值为:  张三&40;1&41;&40;其实为h
Wesley13 Wesley13
3年前
unity将 -u4E00 这种 编码 转汉字 方法
 unity中直接使用 JsonMapper.ToJson(对象),取到的字符串,里面汉字可能是\\u4E00类似这种其实也不用转,服务器会通过类似fastjson发序列化的方式,将json转对象,获取对象的值就是中文但是有时服务器要求将传参中字符串中类似\\u4E00这种转汉字,就需要下面 publ
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(