regex 从sting内部的img中提取alt [已关闭]

x33g5p2x  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(133)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

6天前关闭。
Improve this question
我有一个包含的字符串,我需要使用regex获取“alt”属性的内容
\<p\>this is text\<img src="https://storage.googleapis.com/staging-grapedata-task-helpful-resource-files-967a/e83759c9-85c8-4b22-b3b7-f3ab76d97f30/0c5185b7-0afd-4bca-882b-b23589fb3255_photo_2022-11-04_16-04-42.jpg%5C" alt="photo_2022-11-04_16-04-42" /\> and more text\</p\>
应返回字符串
photo_2022-11-04_16-04-42

2eafrhcq

2eafrhcq1#

使用正则表达式修复HTML,以删除开始/结束标记(尖括号)中的正斜杠,然后分析HTML字符串。
有了文档后,可以查询<img>并获取alt属性。

const str = '\<p\>this is text\<img src="https://storage.googleapis.com/staging-grapedata-task-helpful-resource-files-967a/e83759c9-85c8-4b22-b3b7-f3ab76d97f30/0c5185b7-0afd-4bca-882b-b23589fb3255_photo_2022-11-04_16-04-42.jpg%5C" alt="photo_2022-11-04_16-04-42" /\> and more text\</p\>';

const parseHtmlStr = (htmlStr) =>
  new DOMParser().parseFromString(htmlStr, 'text/html');

const
  parsed = parseHtmlStr(str.replace(/\\(?=[<>])/g, '')),
  imgAlt = parsed.querySelector('img').alt;

console.log(imgAlt); // photo_2022-11-04_16-04-42

此部分实际上是可选的,但这样做并没有坏处:

str.replace(/\\(?=[<>])/g, '')
owfi6suc

owfi6suc2#

以捕获alt的内容

(?<=alt=")[^"]*(?=")
cczfrluj

cczfrluj3#

使用正则表达式/alt=\"(.*)\"/。它将匹配alt属性中引号之间的任何字符。

function getAltAttr(string) {
  var regex = /alt=\"(.*)\"/;
  var arr = regex.exec(string);
    
  return arr[1]; 
}

然后,您可以使用字符串值调用函数。

相关问题