• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

小程序解释HTML富文本的两种办法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  今天写着着代码,读取数据库的内容时突然跳出"<span>、<p>、&nbsp;"这些HTML标签、字符,吓一跳;本来如果是写HTML、JS倒也没什么,但是我在写小程序啊。瞬间就纳闷了,因为小程序里是没有HTML标签的。然后找后台同事能不能处理这个富文本问题,结果又被喷的一脸懵逼。废话少说,言归正传。

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

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

 1   convertHtmlToText: function convertHtmlToText(inputText) {
 2     var returnText = "" + inputText;
 3     returnText = returnText.replace(/<\/div>/ig, \'\r\n\');
 4     returnText = returnText.replace(/<\/li>/ig, \'\r\n\');
 5     returnText = returnText.replace(/<li>/ig, \'  *  \');
 6     returnText = returnText.replace(/<\/ul>/ig, \'\r\n\');
 7     //-- remove BR tags and replace them with line break
 8     returnText = returnText.replace(/<br\s*[\/]?>/gi, "\r\n");
 9 
10     //-- remove P and A tags but preserve what\'s inside of them
11     returnText = returnText.replace(/<p.*?>/gi, "\r\n");
12     returnText = returnText.replace(/<a.*href="(.*?)".*>(.*?)<\/a>/gi, " $2 ($1)");
13 
14     //-- remove all inside SCRIPT and STYLE tags
15     returnText = returnText.replace(/<script.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/script>/gi, "");
16     returnText = returnText.replace(/<style.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/style>/gi, "");
17     //-- remove all else
18     returnText = returnText.replace(/<(?:.|\s)*?>/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, \'<\');
31     returnText = returnText.replace(/>/gi, \'>\');
32 
33     return returnText;
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人参与评论

请发表评论

全部评论

专题导读
上一篇:
Android如何测试微信小游戏&amp;小程序?发布时间:2022-07-18
下一篇:
小程序map地图多点定位发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap