首页 > 编程语言 >小程序上显示富文本

小程序上显示富文本

时间:2024-04-17 10:23:35浏览次数:20  
标签:显示 arrText imgArr 程序 style let 文本 data

  • 功能:富文本内容格式化、拿到富文本里的所有图片点击放大图片

  • util.ts

      export function formatRichText(html: any) { // 富文本内容格式化
        let arrText = html;
        //正则匹配不含style="" 或 style='' 的img标签
        var regex1 = new RegExp("(i?)(\<img)(?!(.*?style=['\"](.*)['\"])[^\>]+\>)", "gmi");
        //给不含style="" 或 style='' 的img标签加上style=""
        arrText = arrText.replace(regex1, "$2 style=\"\"$3");
        //正则匹配含有style的img标签
        var regex2 = new RegExp("(i?)(\<img.*?style=['\"])([^\>]+\>)", "gmi");
        //在img标签的style里面增加css样式(这里增加的样式:width:100%;)
        arrText = arrText.replace(regex2, "$2width:100%;$3");
        // 正则表达式  全局匹配 table tr td标签,并给各自标签添加class类名
        arrText = arrText.replace(/<table/g, '<table class="table-rich"')
        arrText = arrText.replace(/<tr/g, '<tr class="table-tr"')
        arrText = arrText.replace(/<td/g, '<td class="table-td"')
        return arrText
      }
    
  • 使用 index.ts

      import { formatRichText } from "../util";
      data: {
        content: '',
        imgArr: []
      },
      onl oad(options: any) {
        this.getData();
      },
      getData() {
        const res = '富文本编辑器内容'
        const data = formatRichText(res);
        // 主要代码为后面预览图片准备
        let imgArr: any = [];
        let regex = new RegExp(/<img.*?(?:>|\/>)/gi); // 匹配所有图片
        let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; // 匹配src图片
        let arrsImg = data.match(regex); //  data后台返回的富文本数据
        if (arrsImg && arrsImg.length > 0) {
          for (let i = 0; i < arrsImg.length; i++) {
            let srcs = arrsImg[i].match(srcReg);
            imgArr.push(srcs[1])
          }
        }
        this.setData({
          content: data,
          imgArr
        })
        console.log(data) // 富文本内容
        console.log(imgArr) // 图片数组
    
      },
        // 点击放大预览图片函数
      catchImage() {
        wx.previewImage({
          current: this.data.imgArr[0], // 当前显示图片的http链接
          urls: this.data.imgArr // 需要预览的图片http链接列表
        })
      },
    
  • index.wxml

       <rich-text nodes="{{content}}" space="ensp" catchtap="catchImage"></rich-text>
    

标签:显示,arrText,imgArr,程序,style,let,文本,data
From: https://www.cnblogs.com/DCL1314/p/18139941

相关文章

  • 前端【小程序】01-入门篇【注册小程序账号】【开发环境搭建】
    小程序的优势: 学习内容: 两部分内容:1、组件、配置、生命周期、事件处理、数据渲染、API、自定义组件、VantUI、分包加载等2、通告管理、用户管理、房屋管理、报修管理、访客管理等各个功能模块一、注册小程序账号微信公众平台1、在微信公众平......
  • Python——cProfile(程序分析)
    程序分析可以系统性地分析程序的运行速度、内存使用情况等。cProfile是Python的分析器,用于测量程序的运行时间和程序内各个函数调用消耗的时间。importcProfiledefadd():total=0foriinrange(1,10000001):total+=icProfile.run('add()')'''......
  • 小程序上是实现拖动悬浮图标
    小程序上是实现拖动图标效果index.wxml<view><viewclass="move-box"catchtouchmove="buttonMove"bindtouchstart="buttonStart"style="top:{{buttonTop}}px;left:{{buttonLeft}}px;">悬浮图标......
  • 小程序跨端,vue移植
    技术选型由于bun1.1.3windows版还有很多不兼容的小bug,先用pnpmtauri+taro+nutUI:https://github.com/AClon314/tauri-taro-template如何评价京东的Taro项目?-知乎(等tarov4正式版再做,beta的模板现在空白无法启动)tauri+vuetify:https://github.com/AClon314/tauri-vuet......
  • csharp 获取当前程序的所在目录
    获取当前程序所在的目录//获取当前程序的执行目录信息Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);//asp.net使用,不过在console下也是/xxx/bin/Debug/net8.0/Console.WriteLine(System.Reflection.Assembly.GetExecutingAssembly().Location);//=>/xxx/......
  • 【C#】第 1 天:首个C#程序-Hello World
    首个C#程序-HelloWorld1.输出“HelloWorld!”。Console.WriteLine("HelloWorld!"); 1.Console //一个控制台类型。2.WriteLine //时Console类型中的一个方法。3.string //文本类型,它里面也包含一些和文本相关方法。声明和使用1.输出变量的值stringaFriend="Bill"; /......
  • led驱动程序进阶-基于面向对象思想的led驱动模板
    在上一篇文章中编写led驱动程序采用的是最传统的编写方式,这里回顾一下流程就是:给file_operations结构体添加具体的open、read、write、release函数,并实现这些函数的定义,然后定义入口函数并在里面使用这个结构体变量注册驱动、寄存器地址映射、创建设备,然后定义出口函数并进行撤销......
  • 【Azure Developer】.Net 简单示例 "文字动图显示" Typing to SVG
    问题描述看见一个有趣的页面,可以把输入的文字信息,直接输出SVG图片,还可以实现动图模式。示例URL: https://readme-typing-svg.demolab.com/?font=Fira+Code&pause=1000&color=F7F7F7&background=233911F6&center=true&vCenter=true&random=false&width=435&lines=%E6%8A%8A%E5%......
  • 3-01. 建造图纸数据及 ItemTooltip 显示资源物品
    添加木头椅子图纸创建BulePrintDataList_SO添加Chair预制体实例化BluePrintDataList_SO20个针叶木头,换一个椅子修改ItemTooltip修改InventoryManager修改ItemTooltip修改ShowItemTooltip修改InventoryManager修改PlayerBag修改ShowItemToolti......
  • C:\Windows\servicing\Packages 是一个存储 Windows 更新程序包的目录。Windows 操
    C:\Windows\servicing目录包含了与Windows维护和更新相关的文件和子目录。让我们逐个解释一下每个子目录和文件的作用:CbsApi.dll和CbsMsg.dll:这两个DLL文件是Windows组件基础服务(CBS)的一部分。CBS是Windows中用于安装、卸载、维护和更新组件的服务。这些D......