首页 > 解决方案 > javascript捕获img src“...”之间的所有内容

问题描述

嗨,我想捕获 img src="..." 之间的所有内容,但不确定为什么下面的代码不起作用

var stringHtml = '<img src="content://media/external/images/media/21260"><img src="content://media/external/images/media/21260"><img src="content://media/external/images/media/21260">';
var srcArray = ['x.png', 'y.png', 'z.png']

var rgx = /<img src="([^"]+)"/g;
var match;

for (var a = 0; a < srcArray.length; a++) {
  match = rgx.exec(stringHtml);
  stringHtml = stringHtml.replace(match[1], srcArray[a]);
}

alert(stringHtml);

标签: javascript

解决方案


就像经常回答一样,不要使用正则表达式来解析 html。相反,解析字符串并轻松可靠地获取 src

var stringHtml = '<img src="content://media/external/images/media/21260"><img src="content://media/external/images/media/21260"><img src="content://media/external/images/media/21260">';

const parser = new DOMParser().parseFromString(stringHtml, 'text/html');

for (let img of parser.getElementsByTagName('img')) {
  console.log(img.src);
}


推荐阅读