微信小程序:HTML富文本解释

作者: 疾风劲草ccy | 来源:发表于2018-04-25 11:38 被阅读23次

富文本编辑器生成的HTML标签怎么解释?
<rich-text><rich-text>是没用的。

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

var 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;
}

module.exports = { convertHtmlToText  }

调用:

const utils = require('../../utils/utils.js')  // 引入

wx.request(
  url,
  success: res => {
    this.setData({
      article: utils.convertHtmlToText(res.data.content )
    })
  }
)

参考文档:http://www.jianshu.com/p/74a6cbc21b41

  • 第二种方法:解释能力非常强,要引入插件,大概460k左右(不包含emoj 150k左右)
    去Github下载 wxParse插件地址(里面的教程更详细)
const WxParse = require('../../wxParse/wxParse.js');

wx.request(
  url,
  success: res => {
    /*this.setData({
      article: res.data.article
    })*/
    WxParse.wxParse('article', 'html', res.data.article, that, 20);
  }
)

感谢浏览,欢迎评论指正,转载请标明出处。

相关文章

网友评论

    本文标题:微信小程序:HTML富文本解释

    本文链接:https://www.haomeiwen.com/subject/yyvelftx.html