美文网首页
按一定长度截取富文本的文字

按一定长度截取富文本的文字

作者: good__day | 来源:发表于2018-11-29 18:18 被阅读0次

    按一定长度截断富文本,以下只做到了截断,没有做到标签闭合。

    经搜索发现,浏览器在它们认为合理的位置加入闭合标签。但各浏览器的做法是不同的。

    function truncateIgnoreTags(richText, maxLength) {

      const textArr = richText.split(/<\/?\w+[^>]*>/g).filter(Boolean)

      let resTextLength = 0

      const resultRegexp = textArr.reduce((accumulator, cur) => {

        if (resTextLength + cur.length <= maxLength) {

          resTextLength += cur.length

          return accumulator + '[^]*' + cur

        } else {

          if (resTextLength === maxLength) {

            return accumulator

          }

          const curResRegexp =

            accumulator + '[^]*' + cur.substr(0, maxLength - resTextLength)

          resTextLength = maxLength

          return curResRegexp

        }

      }, '')

      const resTextStr = richText.match(new RegExp(resultRegexp))[0]

      return resTextStr

    }

    相关文章

      网友评论

          本文标题:按一定长度截取富文本的文字

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