Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式提取HTML元素的属性_Javascript_Regex_Web Scraping - Fatal编程技术网

Javascript 使用正则表达式提取HTML元素的属性

Javascript 使用正则表达式提取HTML元素的属性,javascript,regex,web-scraping,Javascript,Regex,Web Scraping,我正在处理一些图像延迟,并且正在寻找一种删除src元素的方法。我有一个特定的用例,我需要使用regex,这样我就可以在服务器端呈现结果并停止加载src,直到我在JS中告诉它 基本上,我需要一种方法来可靠地替换图像标记中的src。不是值,而是实际的属性名称 截至目前,我正在测试以下内容: ]*> 它给出了我的示例文本,查找整个字符串。我基本上只需要突出显示src。这样,我就可以在上面regex_replace,将src更改为数据延迟 示例文本 Lorem ipsum dolor sit amet,

我正在处理一些图像延迟,并且正在寻找一种删除src元素的方法。我有一个特定的用例,我需要使用regex,这样我就可以在服务器端呈现结果并停止加载src,直到我在JS中告诉它

基本上,我需要一种方法来可靠地替换图像标记中的
src
。不是值,而是实际的属性名称

截至目前,我正在测试以下内容:

]*>

它给出了我的示例文本,查找整个字符串
。我基本上只需要突出显示
src
。这样,我就可以在上面regex_replace,将
src
更改为
数据延迟

示例文本

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis bibendum lorem bibendum lectus rhoncus molestie. <img src ="aaaa" /> Maecenas ipsum justo, fermentum nec lacus in, porta consectetur metus.
Lorem ipsum door sit amet,一位杰出的领导者。这是一个很好的例子。梅塞纳斯-伊普苏姆-贾斯托,酵素-nec-拉克斯,圣门-梅特斯。
这是我的Regex101:

由于我并不总是能够访问要解析的HTML,所以我不能只针对
src
。我需要确保它仅在图像标记中的任何位置被找到时才是
src

你知道我如何修改它来完成这个任务吗

编辑:

为了澄清这个问题,我如何使用RegEx在图像标记中只能找到
src
属性


因此,我找到的结果将允许我使用自定义数据属性替换
src=“https://”
,如
data deferred=“https://”

,您可以使用正则表达式中的捕获组(括号)将
src
属性替换为
data deferred
属性,如下所示:

$('img[data-deferred]').each(function(i, img){
  $(img).attr('src', $(img).attr('data-deferred'))
})
/[$1][$2][?=a lookahead(无捕获)][全局-全部替换]
var regex=/(]*>)/g;
var text='Lorem ipsum。梅塞纳斯·梅特斯。”;
var result=text.replace(regex,$1data deferred');
控制台日志(结果);

//同侧眼线。Maecenas metus.
您想使用jQuery来实现以下功能:

$('img[data-deferred]').each(function(i, img){
  $(img).attr('src', $(img).attr('data-deferred'))
})

我知道我的措辞可能令人困惑,但我无法仅匹配文本“src”。与中一样,我希望基本上将
src=“aaaa”
转换为
data deferred=“aaaa”
。基本上是将我的src属性替换为自定义数据属性。哦,好的,很抱歉,我一开始不理解。更新了我的答案,这就是你的意思吗?是的,基本上就是我要找的。只是出于好奇,正则表达式是否是级联的,就像它找到完整的一样,然后拆分为多个组?有没有办法只找到src组?嗯,我发现了一些改进:没有为最终部分捕获组,使用了前瞻,并且不再使用回调函数进行替换。可能有办法删除第一个捕获组,但我找不到一个有效的方法。但它只是冻结了我的ChromeOh,我添加了一个
g
标志(全局),以防你想替换多个事件。受我的限制,我试图完成这个服务器端,并且只能访问Jinja2,但他们的正则表达式替换选项有点缺乏。我希望src在渲染时被剥离,而不是在dom准备好之后。