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