使用uni-app写小程序,解析含有html标签的富文本

这篇具有很好参考价值的文章主要介绍了使用uni-app写小程序,解析含有html标签的富文本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在改一个项目,将html+js+css的项目改成小程序,我说使用的uni来写的,其中遇到一个问题,就是需要解析富文本,在vue中可以直接使用v-html,

但是小程序中的标签都是view,text以及image等,该怎么办呢

于是在uni官网找到插件u-parse

<u-parse :content='dangquestion.question' className='texttitle' :imageProp='imageProp'></u-parse> 

  dangquestion.question是需要展示的富文本字符串,texttitle是类名,可以自己写样式,imageProp,是图片样式,,格式如下

          imageProp:{
                    mode:'aspectFit',
                    domain:'图片的服务器根域名',//富文本中图片一般是'upload/img/1.png'
                    padding:10,
                    lazyLoad:false
                },

  于是下载引用,但是发现一个问题,图片不能完好的展示,并且在span,img标签外包裹一层view标签,使页面不能完全按照富文本展示

后来发现有一个很好的用法

  <rich-text :nodes="content" class="texttitle"></rich-text>

  texttitle是自己定义的样式,content是需要展示的富文本字符串

content需要自己先解析一下,如下

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:inline-block;margin:10rpx auto;"');
	return newContent;
}

 html是传递的参数,就说包含html标签的富文本,如下

 let str='<p><span style=\"color: rgb(0, 0, 0); font-size: 16px;\"><strong>女,28岁。</strong></span></p>'

 想要获取content需要   this.content=this.formatRichText(str)

根据以上,带入相应参数即可,可以完美展示富文本,图片大小也可根据富文本样式一比一展示。

完结。文章来源地址https://www.toymoban.com/news/detail-459098.html

到了这里,关于使用uni-app写小程序,解析含有html标签的富文本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】如何获得自己当前的定位呢?本文利用逆地址解析、uni-app带你实现

    目录 前言 效果展示 一、在腾讯定位服务配置微信小程序JavaScript SDK 二、使用uni-app获取定位的经纬度 三、 逆地址解析,获取精确定位 四、小提示 在浏览器搜索腾讯定位服务,找到官方网站,利用微信或者其他账号注册登录,登录后如下图操作 点进去之后,可以看到如下图

    2024年01月19日
    浏览(66)
  • uni-app 使用 tailwindcss 兼容小程序

    在小程序中常规的方式安装taiwindcss会在小程序中报错,所以需要用兼容的写法安装。这里介绍使用vue-cli创建的uniapp项目,按我的步骤操作就好。 这步会生成tailwindcss.config文件,如果没有生成,也可以自己手动在根目录创建 主要是修改plugins部分,加入以下代码,加在require

    2024年02月15日
    浏览(32)
  • 快速使用uni-app搭建小程序项目

    HBuilder是uni-app官方团队专门定制的编辑器,它对Vue做了大量优化投入,且支持uni-app官方库Api的智能提示和推断,同时,我们也可以在通过编辑器快速的创建各种场景下的项目模板,总之HBuilder是用uni-app进行应用开发的首选编辑器,可以访问其官网进行下载安装,点击如下链接

    2024年02月15日
    浏览(39)
  • uni-app:vue3 + uni-app 在微信小程序中无法使用app.component全局注册组件

    按上文中的代码执行后,会发现在微信小程序开发中全局注册的组件是无法显示的,这是uniapp的一个未解决bug, 在uniapp中出了可以通过vue实例的component方法注册全局组件外,uniapp支持另一种全局注册的方式,就是通过 easycom 扫描注册,步骤如下 easycom 的扫描流程是:通过代码

    2024年02月16日
    浏览(58)
  • uni-app微信小程序使用echarts

    前言:本来是使用的ucharts,但因为无法监听图例点击交互,满足不了需求,所以只能放弃。 首先,下载echart组件。可以先随便建个文件夹,然后 npm init。接着下载依赖 然后找到 node_modulesmpvue-echarts下的文件,如图 只留下src,其他的删掉(没有用到)。然后复制 mpvue-echart

    2024年02月10日
    浏览(42)
  • 使用vscode开发配置uni-app(小程序)

    这个文件是用 VsCode 写 uniapp 小程序的步骤笔记 安装Vue脚手架(vue-cli) 通过脚手架创建 uni-app 项目 我们是初学者就直接选择默认模板 创建好后用vscode打开项目 安装vue语法提示插件 vetur 和 vue-helper 安装组件语法提示 初始化npm 从git下载代码块放到项目目录下的 .vscode (没有文件夹

    2024年02月08日
    浏览(54)
  • 小程序-uni-app:uni-app-base项目基础配置及使用 / uni-app+vue3+ts+vite+vscode

    目前(20230605)uni-app最新版本(3.8.4.20230531) 一、官网文档 微信开放文档 uni-app官网 二、创建项目 项目目标:vue3+ts+vite+vscode 创建以 typescript 开发的工程(如命令行创建失败,请直接访问 gitee 下载模板) npx degit dcloudio/uni-preset-vue#vite-ts uniapp-base ​ 本文创建成功 ​ 为了验

    2024年02月05日
    浏览(65)
  • 小程序-uni-app:uni-app-base项目基础配置及使用/uni-app+vue3+ts+vite+vscode

    目前(20230605)uni-app最新版本(3.8.4.20230531) 一、官网文档 微信开放文档 uni-app官网 二、创建项目 项目目标:vue3+ts+vite+vscode 创建以 typescript 开发的工程(如命令行创建失败,请直接访问 gitee 下载模板) npx degit dcloudio/uni-preset-vue#vite-ts uniapp-base ​ 本文创建成功 ​ 为了验

    2024年02月15日
    浏览(64)
  • uni-app小程序使用DCloud(插件市场)流程

    一、DCloud(插件市场) DCloud 是uni-app官方插件市场,里面有官方、团队、个人发布的众多插件,包括 uni-ui、uni-pay 等。而像 uni-ui 这种大型组件库都有官方文档可参考,但一些团队或个人发布的小型插件没有文档,只有下载、导入按钮。本文就以电子 签名插件 jushi-signature 为

    2024年02月05日
    浏览(42)
  • uni-app 小程序使用腾讯地图完成搜索功能

    前言 使用uni-app开发小程序时候使用腾讯地图原生SDK是,要把原生写法转成vue写法在这记录一下。 我们需要注意的是使用高德地图时我们不仅要引入SDK,还要再uni-app中配置允许使用。 由于uni-app内置地图就是腾讯,所以获取位置的api,uni.getLocation坐标不用转换,直接使用。

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包