使用Javascript从HTML中提取<img/>标记

时间:2012-09-28 08:01:32

标签: javascript html

我有一个html页面,有很多元素(表格,div等)我把它们作为字符串,我想从字符串中提取这种格式<img src="(whatever char).jpg" (whatever char)>,我尝试了regexp教程,但无法做任何事情这对我很复杂。我只需要第一次出现,谢谢。

3 个答案:

答案 0 :(得分:2)

我不认为正则表达式是解决这个问题的正确方法:

var all_images = document.getElementsByTagName('img');
var filtered_images = [];

for (var i = 0; i < all_images.length; i++) {
    var image = all_images[i];

    if (image.hasAttribute('src')) {
        filtered_images.push(image);
    }
}

如果您使用jQuery,代码会更简单:

var images = $('img[src]');

答案 1 :(得分:2)

这是你的需要吗?

<德尔> "<img src=\"aaa.jpg\" (whatever char)>".match(/src="([^"]*)"/)[1]

同意Blender,使用dom代替,regexp不是一个好的解决方案。

答案 2 :(得分:0)

为什么你应该三思而后行使用正则表达式解析HTML的答案的强制性链接: RegEx match open tags except XHTML self-contained tags

话虽如此,我想知道为什么你有一个网站HTML代码作为字符串而不是DOM树,需要在javascript中操作它。这看起来像一个非常罕见的用例。当您的脚本在要解析的网站上运行时,您可以使用document.getElementsByTagName(“img”)来获取网站上所有图像DOM节点的数组。但是当你真的把ANOTHER网站的源代码作为一个字符串并想要解析它时,试试这个正则表达式。

<img.*?src="(.*?)"