html标签反转义
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了html标签反转义,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2871字,纯文字阅读大概需要5分钟。
内容图文
情景是这样的(小程序或vue下):
优惠活动的详情页是通过从数据库拿到数据动态生成的,数据库返回的页面结构数据content:
"<div class='cont-part'><div class='cont-title'></div><div class='cont-image'><img src='http://img.域名隐藏之术.cn/524/20191117170216250.png' ></div></div><div class='cont-part'><div class='cont-title'></div><div class='cont-image'><img src='http://img.域名隐藏之术.cn/524/20191117170216309.jpg' ></div></div><div class='cont-part'><div class='cont-title'></div><div class='cont-image'><img src='http://img.域名隐藏之术.cn/524/20191117170216335.png' ></div></div><div class='cont-part'><div class='cont-title'></div><div class='cont-image'><img src='http://img.域名隐藏之术.cn/524/20191117170217306.png' ></div></div>"
结构并不复杂,无非是标题、内容、图片三个部分,那么如何把这段数据转义成html显示在页面中呢?如下。
首先 在js中封装好反转义相关方法:
1 const escapeHtml = str => { // HTML 标签反转义 2var arrEntities = { 3 ‘lt‘: ‘<‘, 4 ‘gt‘: ‘>‘, 5 ‘nbsp‘: ‘ ‘, 6 ‘amp‘: ‘&‘, 7 ‘quot‘: ‘"‘, 8 }; 9return str.replace( /&(lt|gt|nbsp|amp|quot);/ig, function ( all, t ) { 10return arrEntities[ t ]; 11 } ); 12} 1314 const UnicodeToAscii = ( content ) => { // Unicode 转换 ASCII15 let contentCopy = content.replace(/&/ig,‘&‘); 16 let code = contentCopy.match( /&#(\d+);/g ), 17 result = ‘‘; 18if ( code && code.length > 0 ) { 19for ( var i = 0; i < code.length; i++ ) { 20 let asciiStr = String.fromCharCode( code[ i ].replace( /[&#;]/g, ‘‘ ) ); 21 result = contentCopy.replace( new RegExp( code[ i ], ‘g‘ ), asciiStr ); 22 } 23return result; 24 } else { 25return contentCopy; 26 } 27 }
然后 在接口返回数据的地方调用方法:
由于uniapp中不支持div、p、img等标签,所以要用到replace方法为标签增加同名类名;
'要替换成单引号 ‘
1 this.activityBody = res.data.body; 2this.activityBody.htmlContent = this.tools 3 .UnicodeToAscii(this.tools.escapeHtml(this.activityBody.content)) 4 .replace(/'/gi, "‘") 5 .replace(/<p/gi, ‘<p class="_p"‘) 6 .replace(/ <img/gi, ‘<img class="_img"‘) 7 .replace(/<table/gi, ‘<table class="_table"‘);
最后 通过v-html在结构中使用转义后的content:
1 < div class ="content" > 2 < h1 > 标题 </h1>3<div class="line"><span>我是一条线</span></div>4<div v-html="Body.htmlContent"></div>5</div>
此处效果自行感受...
原文:https://www.cnblogs.com/cnlisiyiii-stu/p/11969803.html
内容总结
以上是互联网集市为您收集整理的html标签反转义全部内容,希望文章能够帮你解决html标签反转义所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。