小程序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 相关文章推荐
JS写的数字拼图小游戏代码[学习参考]
Oct 29 Javascript
IE 上下滚动展示模仿Marquee机制
Dec 20 Javascript
JavaScript DOM操作表格及样式
Apr 13 Javascript
javascript实现右侧弹出“分享到”窗口效果
Feb 01 Javascript
jQuery移动端图片上传组件
Jun 12 Javascript
jQuery简单入门示例之用户校验demo示例
Jul 09 Javascript
js图片轮播手动切换特效
Jan 12 Javascript
js实现文字向上轮播功能
Jan 13 Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 Javascript
浅谈vue.js导入css库(elementUi)的方法
Mar 09 Javascript
vue实现底部菜单功能
Jul 24 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
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 八种基本的数据类型小结
2011/06/01 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
如何用php获取文件名后缀
2013/06/09 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
详解Python中time()方法的使用的教程
2015/05/22 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
抽象方法、抽象类怎样声明
2014/10/25 面试题
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
最美乡村教师观后感
2015/06/11 职场文书
MySQL RC事务隔离的实现
2022/03/31 MySQL
Golang 结构体数据集合
2022/04/22 Golang
python的html标准库
2022/04/29 Python
httpclient调用远程接口的方法
2022/08/14 Java/Android
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python