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


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 相关文章推荐
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
Sep 22 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
Feb 15 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
jQuery的基本概念与高级编程
May 14 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
Jan 06 Javascript
详解React Native网络请求fetch简单封装
Aug 10 Javascript
Angular中管道操作符(|)的使用方法
Dec 15 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
Oct 29 Javascript
彻底揭秘keep-alive原理(小结)
May 05 Javascript
Vue.js轮播图走马灯代码实例(全)
May 08 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 Javascript
原生js中运算符及流程控制示例详解
Jan 05 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安全配置方法
2007/06/16 PHP
php上传图片存入数据库示例分享
2014/03/11 PHP
浅析php创建者模式
2014/11/25 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
利用python实现数据分析
2017/01/11 Python
python实现xlsx文件分析详解
2018/01/02 Python
python logging日志模块以及多进程日志详解
2018/04/18 Python
利用python画出折线图
2018/07/26 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
应用服务器有那些
2012/01/19 面试题
酒店拾金不昧表扬信
2014/01/18 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
发布会邀请函
2015/01/31 职场文书
个人党性锻炼总结
2015/03/05 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
三国演义读书笔记
2015/06/25 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
python基础之模块的导入
2021/10/24 Python
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技