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


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 相关文章推荐
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
Aug 07 Javascript
jQuery基础语法实例入门
Dec 23 Javascript
JavaScript中的Number数字类型学习笔记
May 26 Javascript
Knockoutjs 学习系列(二)花式捆绑
Jun 07 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
Feb 21 Javascript
浅谈vue的踩坑路
Aug 31 Javascript
微信小程序三级联动选择器使用方法
May 19 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
Sep 14 Javascript
原来JS还可以这样拆箱转换详解
Feb 01 Javascript
微信小程序表单验证WxValidate的使用
Nov 27 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
Feb 16 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
快速开发一个PHP扩展图文教程
2008/12/12 PHP
php 随机生成10位字符代码
2009/03/26 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
Python使用django获取用户IP地址的方法
2015/05/11 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
使用Python更换外网IP的方法
2018/07/09 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
计算机专业学生求职信分享
2013/12/15 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
产品促销活动策划书
2014/01/15 职场文书
计划生育宣传标语
2014/06/21 职场文书
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript