尝试使用subString和indexOf从文本中获取<img/>标记

时间:2015-12-04 07:50:51

标签: javascript html angularjs regex

所以我得到了一个名为text的变量,其中有HTML实体。 我的代码工作正常,因为我获得了整个<img ...>代码。 但这是问题,有时候有超过1个<img>标签。 现在我的问题是我如何获得所有这些<img>标签,我正在考虑在indexof的末尾添加/g之类的东西,但这并不成功。

这是我到目前为止所做的:

var images = text.substring((text.indexOf("<img")), ((text.indexOf("/>")) + 2));

3 个答案:

答案 0 :(得分:2)

match() 与正则表达式 <img[^>]*\/?>

一起使用

&#13;
&#13;
var text = `
<img src="#" />
<img src="sss.jpg" />
`;

var images = text.match(/<img[^>]*\/?>/g);

console.log(images);
&#13;
&#13;
&#13;

<强> Regex explanation here

Regular expression visualization

答案 1 :(得分:0)

text字符串设为jQuery对象

$(text)

使用

查找所有img
$(text).find('img').addBack('img')

答案 2 :(得分:0)

你可以做的就是沿着这些方向

 var tags = [];
 var re = /<img?([^/>]+)?/>/g, match;
 while(match = re.exec(text)) {
     tags.push(match[0]);
 }
然后

标签将包含所有找到的图像标签。