富文本处理

本文介绍了如何在小程序和Vue中处理富文本,包括在小程序的utils.js文件中定义formatRichText函数,用于清理和格式化富文本内容,以及在Vue中使用v-html属性结合white-space样式处理换行问题。示例代码详细展示了实现过程,帮助开发者更好地理解和应用富文本处理。
摘要由CSDN通过智能技术生成

有时候我们需要用到富文本处理,但又不知道该怎么办,针对这种情况,我们可以写一个函数进行处理

小程序富文本处理

首先,创建一个utils.js文件,在此文件下放入这个函数,记得导出

function formatRichText(html) {
	let newContent = html.replace(/<img[^>]*>/gi, function (match, capture) {
		match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
		match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
		match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
		return match;
	});
	newContent = newContent.replace(/style="[^"]+"/gi, function (match, capture) {
		match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
		return match;
	});
	newContent = newContent.replace(/<br[^>]*\/>/gi, '');
	newContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"');
	return newContent;
}
module.exports = {
	formatRichText
}

然后,在我们需要使用的地方引入utils.js文件

import utils from "../../utils/utils.js"
//接口请求
 utils.request({
      url: interfaceList.interfaceList.industryInfo,
      method: 'get',
      data: {
        industryId: this.data.industryID
      },
      success: res => {
        var arr = {};
        //这里直接使用就可以了
        arr.advantage = utils.formatRichText(res.data.data.advantage)
        //因为formatRichText函数只是处理了一些文字和图片,并没有识别出换行符,所以需要我们进行replaceAll对换行符进行处理
        arr.advantage = arr.advantage.replaceAll("\n", '<br/>')
        this.setData({
          industryInfo: arr
        })
      }
    })

在wxml中直接使用官方给出的富文本标签即可,就像这样

<rich-text class="text" nodes="{{industryInfo.advantage}}"></rich-text>

以上,就是小程序的富文本处理了

vue富文本处理

对于vue的富文本处理就更简单了,我们可以直接使用v-html来进行富文本处理,但是有时候会出现不识别换行符的情况,这个时候,其实我们只需要给使用v-html的标签增加一个 white-space:pre-wrap; 属性样式即可

<div style="white-space:pre-wrap;" v-html="industryInfo.advantage"></div>
描述
normal默认。空白会被浏览器忽略
pre空白会被浏览器保留。其行为方式类似 HTML 中的 pre 标签
nowrap文本不会换行,文本会在在同一行上继续,直到遇到 br 标签为止
pre-wrap保留空白符序列,但是正常地进行换行
pre-line合并空白符序列,但是保留换行符
inherit规定应该从父元素继承 white-space 属性的值

注释:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 “inherit”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小 Ziyi.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值