我正在制作一个node js
应用程序,该应用程序可以分析和下载网络上的图像。但是,在解析htmlString
时,jQuery尝试使用src
标签加载所有图像,从而导致错误。通常,我会像处理其他元素一样删除img
元素,但是我需要能够从特定的img元素中获取并存储img src
标签,以便以后使用。如果可能的话,我试图将所有img元素的src
标签替换为data-img
标签,以便我可以访问存储的url
而不必加载每个图像。
request('example.com', (error, response, htmlString) => {
if (!error && response.statusCode == 200) {
var html = $(htmlString.replace(/(<(\b(style|script|head|link)\b)(([^>]*\/>)|([^\7]*(<\/\2[^>]*>)))|(<\bimg\b)[^>]*>|(\b(background|style)\b=\s*"[^"]*"))/g,"").functionThatReplacesAllImgSrcTagsWithDataImg());
// How do I replace all src in the img tag with data-img?
var useLater = [];
html.find('img.specific__img').each(function(i) {
useLater.push($(this).attr('data-img'));
});
}
});
答案 0 :(得分:1)
与其使用正则表达式,不如使用DOMParser
来修复HTML字符串-只需遍历与img[src]
选择器匹配的元素,设置其{{1 }},并删除其data-img
:
src