小程序读取富文本mysql存储_小程序解释HTML富文本的两种办法

今天写着着代码,读取数据库的内容时突然跳出"、

、 "这些HTML标签、字符,吓一跳;本来如果是写HTML、JS倒也没什么,但是我在写小程序啊。瞬间就纳闷了,因为小程序里是没有HTML标签的。然后找后台同事能不能处理这个富文本问题,结果又被喷的一脸懵逼。废话少说,言归正传。

第一种方法:只能处理简单的HTML标签,img解释不了,连“ ”也处理不了,好处就只有一方法 代码少,无须引入文件。

step1.在 app.js 添加以下方法代码,作为公共方法,所有页面都可用

1 convertHtmlToText: functionconvertHtmlToText(inputText) {2 var returnText = "" +inputText;3 returnText = returnText.replace(//ig, '\r\n');4 returnText = returnText.replace(//ig, '\r\n');5 returnText = returnText.replace(/

/ig, ' * ');6 returnText = returnText.replace(//ig, '\r\n');7 //-- remove BR tags and replace them with line break

8 returnText = returnText.replace(/
/gi, "\r\n");9

10 //-- remove P and A tags but preserve what's inside of them

11 returnText = returnText.replace(/

/gi, "\r\n");12 returnText = returnText.replace(/(.*?)/gi, " $2 ($1)");13

14 //-- remove all inside SCRIPT and STYLE tags

15 returnText = returnText.replace(/[\w\W]{1,}(.*?)[\w\W]{1,}/gi, "");16 returnText = returnText.replace(/[\w\W]{1,}(.*?)[\w\W]{1,}/gi, "");17 //-- remove all else

18 returnText = returnText.replace(//g, "");19

20 //-- get rid of more than 2 multiple line breaks:

21 returnText = returnText.replace(/(?:(?:\r\n|\r|\n)\s*){2,}/gim, "\r\n\r\n");22

23 //-- get rid of more than 2 spaces:

24 returnText = returnText.replace(/ +(?= )/g, '');

25

26 //-- get rid of html-encoded characters:

27 returnText = returnText.replace(/ /gi, " ");

28 returnText = returnText.replace(/&/gi, "&");29 returnText = returnText.replace(/"/gi, '"');30 returnText = returnText.replace(//gi, '>');32

33 returnreturnText;34 },

step2.在要解释 js 文件里调用方法

var app = getApp();

onLoad: function (options){

var _this = this;

//要处理的数据 _this.data.content // j就是这一句代码就解释了HTML标签

_this.data.content= app.convertHtmlToText(_this.data.content);

}

以上就是第一种方法;如有不明之处请参考: http://www.jianshu.com/p/74a6cbc21b41

第二种方法:解释能力非常强,要引入插件,大概480k左右

step1. 去github下载 wxParse插件地址(里面的教程更详细): https://github.com/icindy/wxParse

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值