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到多;

相关推荐
滕青山12 分钟前
腾讯域名拦截查询 在线工具核心JS实现
前端·javascript·vue.js
Qinana14 分钟前
从 URL 输入到页面展示:一场跨越进程与协议的“装修”大戏
前端·面试·程序员
不会敲代码117 分钟前
从零开始用 TypeScript + React 打造类型安全的 Todo 应用
前端·react.js·typescript
gyx_这个杀手不太冷静26 分钟前
让 AI 替你写代码:OpenCode 完全配置与高效使用手册
前端·ai编程
进击的尘埃30 分钟前
TypeScript 协变与逆变:你的泛型组件 Props 为什么总是类型报错?
javascript
helloweilei31 分钟前
javascript 结构化克隆
javascript·node.js
龙猫不热32 分钟前
从 0 手写 Promise:拆解 Promise 链式调用的实现原理
前端·javascript·面试
Arthur147261228654737 分钟前
跨域方案汇总
前端
风象南1 小时前
纯文本模型竟然也能直接“画图”,而且还很好用
前端·人工智能·后端
IT_陈寒1 小时前
Vite vs Webpack:5个让你的开发效率翻倍的实战对比
前端·人工智能·后端