JS正则获取HTML所有img的链接
由于html每个字符的组成是任意的,要找到img元素的位置只需直接匹配到img的标签<img
,
/<img/
同时img标签里可以有多个属性,src属性出现位置也是不固定的,所以得用非贪婪模式*?
(向后最近匹配)来匹配到src的位置上,中间的字符用.
(匹配除换行符的任意字符)来匹配
/<img.*?src=/
注意 url 可能使用单引号或双引号([]
匹配括号内的任一字符)
/<img.*?src=['"]/
接着要把匹配出来的url独立一个项出现在匹配结果里,使用分组符()
/<img.*?src=['"](.*?)['"]/
由于img元素可能定义了dataMap的src属性(如data-src=“xxx”),为了区分出来,还需要在src前匹配一个空格\s
/<img.*?\ssrc=['"](.*?)['"]/ //匹配结果的下标为1的项即是图片url
但这样得到的只是一个url,虽然有全匹配模式global
,但global
模式下是不会把分组获得的单独项的。若要得到所有url,要先通过global
模式分离所有img元素,再逐项获取url
// 获取所有匹配的img元素 // 这里只关心拿到<img>的整个标签,所以用非贪婪模式找到最近的关闭标签 > let imgStrs = htmlStr.match(/<img.*?>/g) // 获取每个img url let urls = imgStrs.map(url=>{ return url.match(/\ssrc=['"](.*?)['"]/)[1] ))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具