1. uniapp 富文本rich-text 文本首行缩进和图片居中

1.1. rich-text 文本首行缩进

  使用 rich-text 组件渲染html格式的代码,常常因为不能自定义css导致文本不能缩进,以及图片不能居中等问题,这里可以考虑使用js的replace方法,替换字符串,然后在渲染的同时加载行内样式。

//页面上加载
<rich-text :nodes="goodsDetail.detail"></rich-text>
var richtext=  this.goodsDetail.detail;
const regex = new RegExp('<img', 'gi');
richtext = richtext.replace(regex, `<img style="max-width:100%;height:auto;display:block;"`);
this.goodsDetail.detail = richtext;

  replace里的g表示全局替换,而每个关键词前面的\则为转义字符,在针对html类的标签替换的时候,是必不可少的。这个方法还支持拓展关键词增加如果有需求可以自行添加,需要自定义的css样式则可以在所替换的字符串关键词里定义。

1.2. 富文本图片居中

1.2.1. 问题

  uni-app - 完美解决 rich-text 富文本解析图片无法自适应宽高问题,图片超出屏幕宽度且不受控。

1.2.2. 解决方案

  对显示前的富文本数据,使用正则进行替换处理图片标签,加入自适应属性样式。

<rich-text :nodes="repairRichText('<b>您的富文本内容</b>')" />
/*** 修复富文本图片宽度* @description 解决图片宽高超出显示不全问题(让其自适应)* @param {String} html - 富文本* @return String*/
repairRichText(html) {// 去掉<img>中style /width / height属性let newContent = html.replace(/<img[^>]*>/gi, (match) => {match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '')match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '')match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '')// 去除 style=""这样的属性(非必须,不需要可自行注释)match = match.replace(/style\s*=\s*(["'])(?:(?!\1).)*\1/gi, '')return match})// 修改所有style里的width属性为max-width:100%newContent = newContent.replace(/style="[^"]+"/gi, (match) => {match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;')return match})// 去掉所有<br/>标签newContent = newContent.replace(/<br[^>]*\/>/gi, '')// img标签添加style属性:max-width:100%;height:autonewContent = newContent.replace(/\<img/gi,'<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"')// returnreturn newContent;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917407.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917407.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917407.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apple基础(Xcode③-Singbox Core)

brew install go open ~/.bash_profile export PATH="$PATH:$(go env GOPATH)/bin" 先确保工具链完整 go install github.com/sagernet/gomobile/cmd/gomobile@v0.1.4 go install github.com/sagernet/gomobile/cmd/gobind@v0.1.4 gomobile init -v # 关键:-v …

JVM学习日记(十四)Day14——性能监控与调优(一)

经过前几篇的铺垫&#xff0c;现在开始正式进入调优篇&#xff0c;也是大火实际用的到的和感兴趣的&#xff0c;但是前期的知识积累还是有必要的&#xff0c;所以还对JVM基础没什么了解的&#xff0c;建议还是回看主包的前几篇内容&#xff0c;当然看其他优秀的博主也是可以的。…

使用 Elasticsearch 和 AI 构建智能重复项检测

作者&#xff1a;来自 Elastic Dayananda Srinivas 探索组织如何利用 Elasticsearch 检测和处理贷款或保险申请中的重复项。 Elasticsearch 带来了大量新功能&#xff0c;帮助你为你的使用场景构建最佳搜索方案。深入了解我们的示例 notebooks&#xff0c;开始免费云试用&#…

如何在不依赖 Office 的情况下转换 PDF 为可编辑文档

在日常工作里&#xff0c;我们经常需要处理各种文件格式的转换问题&#xff0c;像Word转PDF或者PDF转Excel这样的需求屡见不鲜。它是一款功能全面的PDF转换工具&#xff0c;能够帮助你轻松应对多种文档处理任务。不仅能够实现PDF与其他格式之间的转换&#xff0c;如Word、Excel…

嵌入式学习笔记-MCU阶段--DAY09

1. oled屏幕的接口IIC应用场合&#xff1a;2.IIC通信原理概念&#xff1a;IIC&#xff08;Inter-Integrated Circuit&#xff09;其实是IICBus简称&#xff0c;所以中文应该叫集成电路总线&#xff0c;它是一种串行通信总线&#xff0c;使用多主从架构&#xff0c;由飞利浦公司…

解决 Node.js 托管 React 静态资源的跨域问题

在 Node.js 项目中托管 React 打包后的静态资源时&#xff0c;可能会遇到跨域问题&#xff08;CORS&#xff09;。以下是几种解决方案&#xff1a; 1. 使用 Express 中间件设置 CORS 头 const express require(express); const path require(path); const app express();// …

【Linux】多路转接之epoll

优化poll进行拷贝的开销poll开销过大将整个 pollfd 数组拷贝到内核态&#xff0c;以便内核检查 fd 是否就绪&#xff08;从用户态 → 内核态&#xff09;。内核检查 fd 状态&#xff0c;并填充 revents。将 pollfd 数组从内核态拷贝回用户态&#xff0c;让应用程序可以读取 rev…

下载一个JeecgBoot-master项目 导入idea需要什么操作启动项目

官网&#xff1a;开发环境搭建 | JEECG 文档中心 一般做开发的电脑里都是有的&#xff0c;没有的只能下载了 前端安装 node官网:https://nodejs.org/zh-cnpnpm安装:通过命令 后端安装: jdk17 :https://www.oracle.com/cn/java/technologies/downloads/#java17maven :https://m…

解决 InputStream 只能读取一次问题

是的&#xff0c;InputStream 的一个重要特性是它通常只能被读取一次。这是因为&#xff1a;输入流通常是单向的、顺序访问的数据源很多流&#xff08;如网络流、文件流&#xff09;读取后指针就移动了&#xff0c;无法回退有些流&#xff08;如Socket流&#xff09;甚至读取后…

数据分析面试题

技都测试 1、请列举5个 Excel 中常用的函数及写法。[ if ] IF(A1>60, "及格", "不及格") —— 若 A1 单元格数值≥60&#xff0c;返回 “及格”&#xff0c;否则返回 “不及格”。IF(B2>100, B2*0.8, B2) —— 若 B2 数值 > 100&#xff0c…

【07】VisionMaster入门到精通——Blob分折

文章目录0 视屏讲解与演示1 案例演示2 参数详解1 运行参数0 视屏讲解与演示 1 案例演示 周长使能查找U型槽 短轴使能查找U型槽 面积筛选区域 当条件不符合是&#xff0c;该模块显示红色&#xff0c;状态为NG 显示二值图像 显示Blob图像 2 参数详解 Blob分折&#xff0c;…

解释 MySQL 中的 EXPLAIN 命令的作用和使用场景

解释 MySQL 中的 EXPLAIN 命令的作用和使用场景 总结性回答 EXPLAIN 是 MySQL 中用于分析 SQL 查询执行计划的命令&#xff0c;它能展示 MySQL 如何执行一个查询&#xff0c;包括使用的索引、表连接顺序、扫描行数等关键信息。主要用于查询性能优化&#xff0c;帮助开发者识别潜…

.env 文件

.env 文件其实就是一个纯文本文件&#xff0c;用来写“环境变量”键值对&#xff0c;格式非常简单 &#x1f447;✅ .env 文件写法格式&#xff1a;每一行就是一个变量名 值&#xff0c;不要加引号&#xff0c;不要加空格DEEPSEEK_API_KEYsk-xxxxxxxxxxxxxxxxxxxx完整例子&…

机器学习——K 折交叉验证(K-Fold Cross Validation),案例:逻辑回归 交叉寻找最佳惩罚因子C

什么是交叉验证&#xff1f; 交叉验证是一种将原始数据集划分为若干个子集&#xff0c;反复训练和验证模型的策略。 交叉验证&#xff08;Cross-Validation&#xff09;适用于你在模型调参&#xff08;如逻辑回归中的 C&#xff09; 最常用的&#xff1a;K 折交叉验证&#…

蓝桥杯----串口

&#xff08;五&#xff09;、串口1、串口通信简介制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发&#xff0c;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统&#xff0c;串口USART有两根通信线Tx、Rx&#xff0c;可同时双向通信&#xff0c;称之为…

错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException

背景&#xff1a; 代码没有更改&#xff0c;主类位置也没有移动&#xff0c;运行时突然报找不到或无法加载主类的错误 错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException编译器上方显示 Java file is located outside of the module source root so it wont …

Lock 接口及实现类详解:从 ReentrantLock 到并发场景实践

在 Java 并发编程中&#xff0c;除了synchronized关键字&#xff0c;java.util.concurrent.locks.Lock接口及其实现类是另一种重要的同步机制。自 JDK 5 引入以来&#xff0c;Lock接口凭借灵活的 API 设计、可中断的锁获取、公平性控制等特性&#xff0c;成为复杂并发场景的首选…

「iOS」————SideTable

iOS学习前言sideTableSlideTablesSideTableBufSideTable前言 我们在上一篇中&#xff0c;简单的介绍了weak的实现原理。其中弱引用表就是存储在SideTable中的&#xff0c;这里我们来学习了解一下SideTable sideTable sideTable主要用于存储和管理对象的额外信息&#xff0c;…

【PHP】CURL请求第三方API接口

当我们需要调用第三方接口时&#xff0c;就需要使用CURL&#xff0c;通过CURL操作去请求第三方API接口&#xff0c;有的是通过POST方式&#xff0c;有的是通过GET方式&#xff0c;下面介绍一个通用的使用CURL调用API接口的方法。一、CURL操作共两个方法&#xff0c;分别是CURL操…

对于考研数学的理解

文章目录高等数学总结补充说明1. 微分方程与无穷级数的特殊性2. 隐藏的逻辑链条3. 向量代数的桥梁作用核心框架为什么这样设计&#xff1f;结论线性代数核心逻辑框架各讲之间的本质联系1. 行列式 → 矩阵2. 矩阵 → 向量组3. 矩阵 向量组 → 线性方程组4. 矩阵 → 特征值与特征…