微信小程序 富文本转文本实例详解


Posted in Javascript onOctober 24, 2016

微信小程序-富文本转文本

最近小程序这么火,我也来搞搞。发现了一个恶心的问题。小程序没有组件能支持富文本内容的,改接口又不太合适,于是有了这问,没技术含量纯粹记录

首先我们看眼没有被格式的富文本显示:

*.wxml内代码。content是富文本内容

<view>
   <text>{{content}}</text>
  </view>

显示结果:

微信小程序 富文本转文本实例详解

由以上图片看到,小程序无法解析html文件

我们需要处理html富文本内容,让其显示好看点

下面直接上代码了,主要功能就是利用js的replace 对富文本经行处理,大家可以看一下。一起优化,方便对富文本更好的处理。

convertHtmlToText: function convertHtmlToText(inputText) {
  var returnText = "" + inputText;
  returnText = returnText.replace(/<\/div>/ig, '\r\n');
  returnText = returnText.replace(/<\/li>/ig, '\r\n');
  returnText = returnText.replace(/<li>/ig, ' * ');
  returnText = returnText.replace(/<\/ul>/ig, '\r\n');
  //-- remove BR tags and replace them with line break
  returnText = returnText.replace(/<br\s*[\/]?>/gi, "\r\n");

  //-- remove P and A tags but preserve what's inside of them
  returnText=returnText.replace(/<p.*?>/gi, "\r\n");
  returnText=returnText.replace(/<a.*href="(.*?)".*>(.*?)<\/a>/gi, " $2 ($1)");

  //-- remove all inside SCRIPT and STYLE tags
  returnText=returnText.replace(/<script.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/script>/gi, "");
  returnText=returnText.replace(/<style.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/style>/gi, "");
  //-- remove all else
  returnText=returnText.replace(/<(?:.|\s)*?>/g, "");

  //-- get rid of more than 2 multiple line breaks:
  returnText=returnText.replace(/(?:(?:\r\n|\r|\n)\s*){2,}/gim, "\r\n\r\n");

  //-- get rid of more than 2 spaces:
  returnText = returnText.replace(/ +(?= )/g,'');

  //-- get rid of html-encoded characters:
  returnText=returnText.replace(/ /gi," ");
  returnText=returnText.replace(/&/gi,"&");
  returnText=returnText.replace(/"/gi,'"');
  returnText=returnText.replace(/</gi,'<');
  returnText=returnText.replace(/>/gi,'>');

  return returnText;
}

将上面代码放入任意适合的小程序js文件中, 然后在需要处理数据的js文件里,引入文件,下面给出放入app.js文件中的调用示

例:

var app = getApp()//获取app小程序实例
 onLoad: function (options) {
    wx.request({
   url: 'http://example.com/api' + options.id+'.json',
   headers: {
    'Content-Type': 'application/json'
   },
   success: function (res) {
    res.data.content = app.convertHtmlToText(res.data.content )
     that.setData({
      art: res.data.content
     })
     console.log(res.data)
   }
  })
}

然后编译刷新下,可以看到结果了:

微信小程序 富文本转文本实例详解

这里可以继续调整下css,使显示得更好看点。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
Jan 16 Javascript
比Jquery的document.ready更快的方法
Apr 28 Javascript
简单几行JS Code实现IE邮件转发新浪微博
Jul 03 Javascript
jQuery 回车事件enter使用示例
Feb 18 Javascript
Vue.js原理分析之observer模块详解
Feb 17 Javascript
原生JS实现图片懒加载(lazyload)实例
Jun 13 Javascript
webpack+vue2构建vue项目骨架的方法
Jan 09 Javascript
微信小程序实时聊天WebSocket
Jul 05 Javascript
基于element-ui组件手动实现单选和上传功能
Dec 06 Javascript
小程序自定义日历效果
Dec 29 Javascript
Vue 表情包输入组件的实现代码
Jan 21 Javascript
react使用antd表单赋值,用于修改弹框的操作
Oct 29 Javascript
微信小程序 参数传递详解
Oct 24 #Javascript
10分钟掌握XML、JSON及其解析
Dec 06 #Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 #Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
Oct 24 #Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
Oct 24 #Javascript
JavaScript reduce和reduceRight详解
Oct 24 #Javascript
js在ie下打开对话窗口的方法小结
Oct 24 #Javascript
You might like
PHP也可以?成Shell Script
2006/10/09 PHP
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
深入分析js中的constructor和prototype
2012/04/07 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
Django之路由层的实现
2019/09/09 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
学生处主任岗位职责
2013/12/01 职场文书
工作自荐信
2013/12/11 职场文书
关于工资低的辞职信
2014/01/14 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书