js获取html中的img标签,图片标签,提取src属性并替换操作
场景:
获取HTML中的所有图片标签,并把图片的src属性替换成webp图片, 若浏览器支持webp,则展示,不支持走onerror函数展示data-original原图。
function getDetailWebp(htmlStr, width= 600){if(!htmlStr) return '';var reg = /<img[^>]+src=[\'|\"]?([^(?"|?'|?>)]+)[\'|\"]?[^>]*>/gi;if(!reg.test(htmlStr)) return htmlStr; // 内容中无图直接返回不用处理return htmlStr.replace(reg, function($0, $1){if($0.indexOf('data-original') != -1) return $0; // 如果图片标签上有这个属性,那这个可能是接口或者自己已经处理过的不需要重复处理,返回即可;return $0.replace($1, imageToWebp($1, width)).replace(/\/?>/, ` data-original="${$1}" onerror="loadImageError(this)"/>`)})}
图片正则:
var imgReg = /<img[^>]+>/gi;
var imgAndSrcReg = /<img[^>]+src=[\'|\"]?([^(?"|?'|?>)]+)[\'|\"]?[^>]*>/gi;
- <img 匹配图片标签;
- [^>]+ 匹配不是>的任意字符,+ 1到多
- src=[‘|“]?([^(?”|?’|?>)]+)[‘|"]?匹配src属性,[’|“]? 属性用单引号或者双引号包起来的,可包可不包(可有可无);其中([^(?”|?‘|?>)]+)最里层的(?"|?’|?>)非"非’非>,整个就是src中的属性值为非"或非’或非>的任意字符;
- [^>]* 不是>的任意字符,*代表0到多;
相关文章:
js获取html中的img标签,图片标签,提取src属性并替换操作
场景: 获取HTML中的所有图片标签,并把图片的src属性替换成webp图片, 若浏览器支持webp,则展示,不支持走onerror函数展示data-original原图。 function getDetailWebp(htmlStr, width 600){if(!htmlStr) return ;var reg /<im…...
【力扣经典面试题】27. 移除元素
题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑…...
MicrosoftEdge浏览器打开网页出现“此网站被人举报不安全”问题时解决办法
1:有时候不知怎么回事用电脑自带的微软浏览器进行搜索会出现以下的问题 这可能是由于我们的浏览器安全审查过于严格引起的 Windows10正式版系统下,使用Edge浏览器浏览网页时候,发现整个页面突然变成了红色,显示“已有人举报此网站…...
【PyCharm教程】PyCharm 安装、卸载和升级包
PyCharm 为特定的 Python 解释器提供了安装、卸载和升级 Python 包的方法。默认情况下,PyCharm 使用 pip 来管理项目包。对于 Conda 环境,您可以使用conda 包管理器。 在 PyCharm 中,您可以在Python 包工具窗口和 Python 解释器Settings/Pre…...
蓝桥杯-常用STL(一)
常用STL 🎈1.动态数组🎈2.vector的基础使用🔭2.1引入库🔭2.2构造一个动态数组🔭2.3插入元素🔭2.4获取长度并且访问元素🔭2.5修改元素🔭2.6删除元素🔭2.7清空 Ἰ…...
SQL查询数据库环境(dm8达梦数据库)
SQL查询数据库环境dm8达梦数据库 环境介绍 环境介绍 某些环境没有图形化界面,可以使用sql语句查询达梦数据库环境情况 SELECT 实例名称 数据库选项,INSTANCE_NAME 数据库选项相关参数值 FROM V$INSTANCE UNION ALL SELECT 授权用户,(SELECT AUTHORIZED_CUSTOMER FROM V$LICE…...
DolphinScheduler + Amazon EMR Serverless 的集成实践
01 背景 Apache DolphinScheduler 是一个分布式的可视化 DAG 工作流任务调度开源系统,具有简单易用、高可靠、高扩展性、⽀持丰富的使用场景、提供多租户模式等特性。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方…...
【服务器APP】利用HBuilder X把网页打包成APP
目录 🌺1. 概述 🌼1.1 新建项目 🌼1.2 基础配置 🌼1.3 图标配置 🌼1.4 启动界面配置 🌼1.5 模块配置 🌼1.6 打包成APP 🌺1. 概述 探讨如何将网页转化为APP,这似乎…...
vue3 组合式API获取子组件的属性和方法
在vue2中,获取子组件实例的方法或者属性时,父组件直接通过ref即可直接获取子组件的属性和方法,如下: // father.vue <child ref"instanceRef" /> this.$ref[instanceRef].testVal this.$ref[instanceRef].testFun…...
[数据结构+算法] 给一棵树和一个sum,判断是否存在从root到叶子结点的path之和等于sum?
[数据结构算法] 给一棵树和一个sum,判断是否存在从root到叶子结点的path之和等于sum? 可以使用两种方法求解 递归 CheckTreeSumRecursive 问题转换为递归判断左右子树是否满足路径和等于sum减去当前节点的值。 迭代 CheckTreeSumNonRecursive 使用两个…...
非阿里云注册域名如何在云解析DNS设置解析?
概述 非阿里云注册域名使用云解析DNS,按照如下步骤: 添加域名。 添加解析记录。 修改DNS服务器。 DNS服务器变更全球同步,等待48小时。 添加解析记录 登录云解析DNS产品控制台。 在 域名解析 页面中,单击 添加域名 。 在 …...
微服务-微服务Alibaba-Nacos注册中心实现
1. 系统架构的演变 俗话说, 没有最好的架构,只有最合适的架构。 微服务架构也是随着信息产业的发展而出现的最有普 遍适用性的一套架构模式。通常来说,我们认为架构发展历史经历了这样一个过程:单体架构——> 垂直架构 ——&g…...
多符号表达式的共同子表达式提取教程
生成的符号表达式,可能会存在过于冗长的问题,且多个符号表达式中,有可能存在相同的计算部分,如果不进行处理,计算过程中会导致某些算式计算多次,从而影响计算效率。 那么多个符号表达式生成函数时…...
Java 反射获取属性名、属性类型、属性值、判断属性类型
1.代码 /*** 通过反射获取对象属性名、属性类型、属性值** param t 需要反射的对象* author hcx*/public static <T> void reflect(T t){// 获取所有属性// getDeclaredFields 不包含父类,包含私有属性// getFields 包含父类属性Field[] fields t.getClass(…...
Docker私有仓库搭建
目录 1.registry私有仓库 拉取registry镜像 修改docker配置文件并重启 运行registry容器 修改想要上传的镜像的标签并上传验证 再另一台主机上获取此镜像 浏览器验证 2.Docker--harbor私有仓库部署与管理 什么是Harbor Harbor的特性 Harbor的构成 Harbor部署 准备…...
C语言第十三弹---VS使用调试技巧
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 VS调试技巧 1、什么是bug 2、什么是调试(debug)? 3、Debug和Release编辑 4、VS调试快捷键 4.1、环境准备 4.2、调试…...
AST反混淆实战-jsjiamiv7最高配置
js加密混淆网站 https://www.jsjiami.com/一、混淆demo生成 01 打开目标网址 https://www.jsjiami.com/ 02 按照顺序加密混淆二、混淆前后demo 混淆前的源码 (function(w, d) { w.update "2023年01月17日05:34:29更新"; d.info "本站历时1年半研发的新版本V7…...
colorThief+vite+react使用方法
官网: Color Thief npm i --save colorthief 第一种,import载入图片 经过尝试,在vite中,要引入.mjs版本 import ColorThief from colorthief/dist/color-thief.mjs 第一种,通过import载入图片 import aa from /assets/123.jpgconst [resultColor,setResultColor]useState() …...
Hive(15)中使用sum() over()实现累积求和和滑动求和
目的: 三个常用的排序函数row_number(),rank()和dense_rank()。这三个函数需要配合开窗函数over()来实现排序功能。但over()的用法远不止于此,本文咱们来介绍如何实现累计求和和滑动求和。 1、数据介绍 三列数据,分别是员工的姓名、月份和…...
2024年Java搭建面试题
2024年Java实战面试题(北京)_java 5 年 面试-CSDN博客 1、搭建docker容器 # 安装依赖的环境 yum -y install yum-utils device-mapper-persistent-data lvm2 # 设置镜像源为阿里 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/lin…...
从无人机抗风到机械臂消振:聊聊ESO(扩张状态观测器)在机器人里的那些实战用法
从无人机抗风到机械臂消振:ESO在机器人控制中的工程实践 当四旋翼无人机遭遇突风干扰时,传统PID控制器往往需要数秒才能恢复稳定姿态;而工业机械臂在高速运动时,末端执行器的振动误差可能高达毫米级——这些工程难题背后ÿ…...
SEO_资深运营揭秘,长期稳定排名的SEO策略介绍
SEO策略的核心要素:内容质量 在资深运营者的经验中,内容质量始终是SEO策略的核心要素。一个优质的网站,首先需要提供高质量、有价值的内容,这不仅能吸引用户,还能提升网站在搜索引擎中的排名。长期稳定的SEO排名离不开…...
《YOLOv11 实战:从入门到深度优化》003、数据集准备:自定义数据集的标注、整理与增强
003、数据集准备:自定义数据集的标注、整理与增强 上周调一个产线缺陷检测项目,模型在测试集上mAP冲到0.92,产线一跑直接崩了——传送带反光、零件旋转、背景杂物,现实世界从来不会按着COCO数据集的规矩来。这才痛定思痛ÿ…...
深入解析Anaconda中的pkgs文件夹:功能、管理与优化策略
1. pkgs文件夹的核心功能解析 第一次打开Anaconda安装目录时,很多人都会被那个占据几个GB空间的pkgs文件夹吓一跳。这个看似普通的文件夹,其实是Anaconda生态系统的"心脏"。它不仅仅是存放安装包的仓库,更承担着环境管理的关键角色…...
fa‘s‘d‘f
fa’s’d’fa’d...
ESP32轻量事件驱动库simia_embedded:静态类型+环形缓冲区实现
1. 项目概述simia_embedded是一个面向 ESP32 平台 Arduino Core 的极简事件驱动(Event-Driven)轻量级库。其设计哲学遵循“够用即止”原则,不依赖 RTOS 抽象层、不引入动态内存分配、不封装硬件外设驱动,仅提供一套确定性高、开销…...
2026届最火的六大降重复率神器实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 目前人工智能生成内容大范围运用的情形下,致使 AIGC 检测识别率降低的工具适时出…...
BeMusic 3.1.3音乐网站源码:打造个人专属音乐平台的完美选择
在当今数字音乐时代,拥有一个属于自己的音乐网站已成为许多音乐爱好者和开发者的梦想。BeMusic 3.1.3音乐网站源码正是实现这一梦想的理想工具。作为一个功能全面的音乐分享和流媒体平台,BeMusic允许用户在几分钟内创建专业级的音乐网站,无需…...
08_Neo4j知识体系之企业级特性与高可用架构
08_Neo4j知识体系之企业级特性与高可用架构 体系 企业特性层:集群与高可用、安全与合规、备份恢复、监控运维、Neo4j Ops Manager关联能力:与关键业务系统、金融级稳定性、多环境治理、权限审计、灾备体系密切相关适用对象:企业架构师、DBA、…...
2026 年1月 13 日-KB5074109(OS内部版本 26200.7623 和 26100.7623)
🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...
