如何在节点js中的字符串中查找图像标记

时间:2017-07-21 05:29:05

标签: javascript html node.js replace

我有一个带有图片标签的字符串,如下所示

 var str = '<img src="www.client.jpg><img src="www.custums.png">';

我必须找到图片标签和src,即我需要将图片标签推送到一个数组但是现在我不能使用jsdom,因为我现在在我的服务器上有版本问题。所以,任何人都可以建议我帮助不使用jsdom.Thanks。

3 个答案:

答案 0 :(得分:1)

只需拆分字符串,然后像这样过滤到网址;

var str = '<img src="www.client.jpg"><img src="www.custums.png">';

console.log(str.split("\"").filter(t => t.startsWith("www.")));

您的示例缺少&#34;,它会使它无法正确解析,但假设html实际上是该形式但没有错误,它只会给你网址。

答案 1 :(得分:0)

您可以使用xpath进行提取,路径为//img@src。或者,您可以使用xml到json解析器;像fast-xml-parser

一样

答案 2 :(得分:0)

将字符串拆分为图像标记数组。将字符串转换为HTML DOM对象,如下所示。然后你可以轻松获得图像标记的src。

&#13;
&#13;
var str = "<img src='www.client.jpg'><img src='www.custums.png'>";
var newstring = str.replace(/></gi, ">,<"); // Replace '><' with '>,<' so that you can split with ','
var imgs = newstring.split(",");

for(i=0; i<imgs.length; i++) {
  // Create a temporary div, assign img string as its innerHTML, then gets its content
  var d = document.createElement('div');
  d.innerHTML = imgs[i];
  // Reassign the imgs array with HTML DOM object instead of string
  imgs[i] = d.firstChild;
  console.log(imgs[i].src);
}
&#13;
&#13;
&#13;