小程序rich-text组件如何改变内部img图片样式的方法


Posted in Javascript onMay 22, 2019

一、起因

小程序中有一个页面,很奇葩,是通过后端传过来的整段HTML字符串展示内容的,那么我们暂时叫这个页面为content,传过来之后,他里面的图片样式是不固定的,有的大,有的小,有的有style有的没有,那我怎么能让他统一展示成一样的样式呢?

二、办法

思前想后,我觉得还是正则比较靠谱,把content里面所有的img标签筛选出来,把里面有style的、有width的、有height的、全部删除掉,最后在统一加上我们想要的样式,最终代码如下:

<RichText nodes={content} />

下面是HTML字符串处理过程

let html = content
      .replace(/<p([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<p')
      .replace(/<p>/ig, '<p style="font-size: 15Px; line-height: 25Px;">')
      .replace(/<img([\s\w"-=\/\.:;]+)((?:(height="[^"]+")))/ig, '<img$1')
      .replace(/<img([\s\w"-=\/\.:;]+)((?:(width="[^"]+")))/ig, '<img$1')
      .replace(/<img([\s\w"-=\/\.:;]+)((?:(style="[^"]+")))/ig, '<img$1')
      .replace(/<img([\s\w"-=\/\.:;]+)((?:(alt="[^"]+")))/ig, '<img$1')
      .replace(/<img([\s\w"-=\/\.:;]+)/ig, '<img$1 style="width: 100%; border-radius: 8Px;"');

最终实现了我们想要的样式统一的效果啦~

三、总结

我有想过直接在less里面取到img,然后改变它的样式,这种办法在h5中是可行的,但是在小程序中不起作用!因为在小程序中会是一整个rich-text标签,里面的内容样式无法修改。所以采用这种办法啦~~能够解决问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript与jQuery方法的隐藏与显示
Jan 19 Javascript
Bootstrap carousel轮转图的使用实例详解
May 17 Javascript
jQuery实现的自定义滚动条实例详解
Sep 20 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
Dec 08 Javascript
详谈js中window.location.search的用法和作用
Feb 13 Javascript
原生JS实现前端本地文件上传
Sep 08 Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 Javascript
vue实现数据控制视图的原理解析
Jan 07 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
Jan 08 Javascript
vue相关配置文件详解及多环境配置详细步骤
May 19 Javascript
三剑客:offset、client和scroll还傻傻分不清?
Dec 04 Javascript
vue使用watch监听属性变化
Apr 30 Vue.js
JavaScript中的 new 命令
May 22 #Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 #Javascript
原生JS实现列表内容自动向上滚动效果
May 22 #Javascript
小程序如何使用分包加载的实现方法
May 22 #Javascript
原生js实现trigger方法示例代码
May 22 #Javascript
koa router 多文件引入的方法示例
May 22 #Javascript
微信小程序template模板与component组件的区别和使用详解
May 22 #Javascript
You might like
php Undefined index的问题
2009/06/01 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
动态样式类封装JS代码
2009/09/02 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
vue组件间通信解析
2017/03/01 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Python数据可视化之画图
2019/01/15 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
中海讯通笔试题
2015/09/15 面试题
手术室护士自我鉴定
2013/10/14 职场文书
会计大学生职业生涯规划书范文
2014/01/13 职场文书
机关单位动员会主持词
2014/03/20 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫