小程序解析富文本---文本内容(不含图片)

本案例只解析文本
若需解析图片可查看: https://www.jianshu.com/p/50cbb428ad1c

  1. 需引用 html2json.js , 将html转化json文本
  2. 利用递归取出文本

import HtmlToJson from './html2json.js';

let  arr = [];  //存储文本数据

//递归取出文本数据
function getcontent(data, arr) {

  data.forEach((item, index) => {
    if (item.node == "element" && item.nodes) {
      //先判断 item.tag == "br" 
      if (item.tag == "br") {
        arr.push({ node: "br", text: "\n" });

      } else {
        let newarr = item.nodes;
        return getcontent(newarr,arr)
      }

    } else if (item.node == "text") {
      arr.push(item);
    }
  })
} 

//根据  data   返回文本
function getText( data = '') {
 
   var transData = {};//存放转化后的数据

    transData = HtmlToJson.html2json(data);

    let text_transData = {};   //纯文本    解析文本内容
    if (transData.nodes.length > 0) {

      text_transData = transData.nodes[0].nodes;
      let testdata = [];   //文本数据
   
      //判断body中有内容才继续
      text_transData.forEach((item, index) => {
        if (item.tag == "body" && item.nodes) {
          testdata = item.nodes;
        }
      })
     
      if (testdata.length > 0){

            arr = [];   //先清空arr   在累加
            getcontent(testdata,arr);

            // console.log(arr, " 转义数据:arr")
            let str = "";
            arr.forEach((item, index) => {
                str += item.text;
            })
            return str;
        }else{
            return '';
        }
    }

}

module.exports = {
  getText: getText,
}

调用 getText ()方法
const Gettext = require('../../Gettext.js');

let content ="





乐善好施

" let newcontent = Gettext.getText(content); console.log(" 乐善好施 ")

你可能感兴趣的:(小程序解析富文本---文本内容(不含图片))