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; 
  1. <img 匹配图片标签;
  2. \^\>\]+ 匹配不是\>的任意字符,+ 1到多

  3. \^\>\]\* 不是\>的任意字符,\*代表0到多;

相关推荐
xiaohe060112 分钟前
📖 每一份收获都值得被纪念:小何的 2025 年度总结
前端·年终总结
社恐的下水道蟑螂15 分钟前
深入理解 React 中的 Props:组件通信的桥梁
前端·javascript·react.js
青莲84317 分钟前
Java基础篇——第三部
java·前端
社恐的下水道蟑螂22 分钟前
LangChain:AI 应用开发框架的深度解析与实践指南
前端·langchain·ai编程
凌览23 分钟前
2025年,我和AI合伙开发了四款小工具
前端·javascript·后端
青莲84324 分钟前
Java基础篇——第一部
android·前端
留简26 分钟前
从零搭建一个现代化后台管理系统:基于 React 19 + Vite + Ant Design Pro 的最佳实践
前端·react.js
小满zs32 分钟前
Next.js第十八章(静态导出SSG)
前端·next.js
CAN117735 分钟前
快速还原设计稿之工作流集成方案
前端·人工智能
A242073493036 分钟前
深入浅出JS事件:从基础原理到实战进阶全解析
开发语言·前端·javascript