提问人:Jessika 提问时间:10/21/2022 最后编辑:Andy LesterJessika 更新时间:10/21/2022 访问量:512
正则表达式 - 如何从图像中获取 src 和 alt
Regex - How to get src and alt from Image
问:
我需要从所有图像中获取 html 代码的 src 和 alt。我设法得到了它,但我有以下问题:
- 如果图像没有alt,则它不会检测到我的图像。在这些情况下,我只需要获取 src。
以下代码适用于以下问题:https://regex101.com/r/3Vlkql/1
(<img\s)[^>]*(src=\S+)[^>]*(\salt=["|'].*?["|'])[^>]*(\/?>)
替代:
$1$2$3$4
结果:
<img src="https://example.com/image" alt="example1">
问题:我的正则表达式只检测是否具有 src 和 alt。但是如果没有alt,正则表达式不会检测到我。我怎样才能用正则表达式来获得两者?
这与正则表达式不匹配:
<img src="https://example.com/image">
- src 和 alt
- 仅 src
如果我需要使用 2 个正则表达式来实现我的目的,我没有问题。
答:
0赞
Mohamad Ahmadi
10/21/2022
#1
您可以在组末尾用于可选的组模式:?
它的工作很好:/(<img\s)[^>]*(src=\S+)[^>]*(\salt=["|'].*?["|'])?[^>]*(\/?>)/gm
在这里,您可以查看演示的实时链接:https://regex101.com/r/u2uWGX/1
评论
0赞
Jessika
10/21/2022
但不适用于: <img class=“aligncenter wp-image-15664” src=“example.com” srcset=“example.com” sizes=“(max-width: 557px) 100vw, 557px” width=“557” height=“314” _mstalt=“1316237”>
0赞
Jessika
10/21/2022
<img(?![^>]*\balt=)[^>]*?> 匹配没有 alt 的图像,但是我怎样才能分组以获得 <img src=“domain.com/image”> 仅适用于不包含 alt 的图像
0赞
Mohamad Ahmadi
10/21/2022
它的工作也!看图片<img class="aligncenter wp-image-15664" src="example.com" srcset="example.com" sizes="(max-width: 557px) 100vw, 557px" width="557" height="314">
0赞
Mohamad Ahmadi
10/21/2022
使用这个/(<img\s)[^>]*(src=\S+)[^>]*(\salt=["|'].*?["|'])?[^>]*(\/?>)/gm
0赞
Jessika
10/21/2022
你能检查一下为什么不工作吗?regex101.com/r/qeNPvz/1
0赞
Rohìt Jíndal
10/21/2022
#2
如果您的 HTML 中有一组元素。您还可以通过循环 .img
src
alt
HTMLCollection
演示 :
const imgCollection = document.getElementsByTagName('img');
for (let item of imgCollection) {
console.log('src :', item.src)
console.log('alt :', item.alt)
}
<img src="https://example.com/image" alt="example1">
<img src="https://example.com/image">
上一个:如何从文本区域解析花哨的文本
下一个:如何获取下载文件链接说明?
评论
alt
src