【发布时间】:2017-12-19 03:37:25
【问题描述】:
我有一个这样的字符串
var string = '<img src="test.jpg'><img src="test2.jpg>';
var dom = new JSDOM(string,{ includeNodeLocations: true });
dom = dom.window.document.querySelectorAll("img");
for(var i = 0;i< dom.length;i++) {
text = string.replace(/<img[^>]*>/g,'<amp-img layout="responsive" class="ampimageheight" src="'+dom[i].getAttribute('src')+'" width="200" height= "100"></amp-img>');
}
但我的输出是
<amp-img layout="responsive" class="ampimageheight" src="test2.jpg" width="200" height= "100"></amp-img><amp-img layout="responsive" class="ampimageheight" src="test2.jpg" width="200" height= "100"></amp-img>
其中只有第二个图像 src 被替换为 2 个图像。我认为这是因为异步。谁能帮助我。谢谢。
【问题讨论】:
-
text在我面前出现undefined... -
如果您不将正则表达式设为全局,这可能会起作用。但是这样做仍然有点奇怪。
-
@Rayon,我编辑了我的代码。
-
@Cerbrus,你能建议更好的方法吗?
标签: javascript angularjs node.js replace