Javascript 获取图像src';来自html代码的

Javascript 获取图像src';来自html代码的,javascript,html,regex,Javascript,Html,Regex,我有一个变量中的任意html代码。例如: var MyHTML = '<div> <ul> <li><img src="http://aaa.ru/image1.png" /></li> <li><img src="http://aaa.ru/image2.png" /></li> <li><img src="http://aaa.ru/image3.png" /></

我有一个变量中的任意html代码。例如:

var MyHTML = 
'<div>
<ul>
<li><img src="http://aaa.ru/image1.png" /></li>
<li><img src="http://aaa.ru/image2.png" /></li>
<li><img src="http://aaa.ru/image3.png" /></li>
</ul>
</div>';
var MyHTML=
'
';

如何将src所有图像获取到数组(var images=[])?

如果要解析文本,可以使用以下正则表达式:

/src="([^"]+)"/
如果您使用的是JavaScript,则可以执行以下操作:

MyHTML.match(/src="([^"]+)"/g);

您可以使用jQuery来实现这一点

// wrap the HTML into a jQuery object
var $myHTML = $(MyHTML);
// initiate a new empty array
var images = [];
// iterate through all img elements
$myHTML.find('li img').each(function() {
   // push to the array the src attribute
   images.push($(this).attr('src'));
});
如果要使用以下代码,请确保加载jQuery库:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

您必须使用@Adriien所说的REGEX,因为您的html是字符串,您希望它预加载。试试这个

var MyHTML = 
'<div><ul><li><img src="http://aaa.ru/image1.png" /></li><li><img src="http://aaa.ru/image2.png" /></li><li><img src="http://aaa.ru/image3.png" /></li></ul></div>';
var srcRegex = /<img src="([^"]+)" \/>/ig;

var matches = [];
while (srcRegex.exec(MyHTML)) {
  matches.push(RegExp.$1);
}

//contains all cookie values
console.log(matches);
var MyHTML=
“
    • ”; var srcRegex=/ig; var匹配=[]; while(srcRegex.exec(MyHTML)){ 匹配。推送(RegExp.$1); } //包含所有cookie值 console.log(匹配项);

jsfiddle

在将html放入body标记之前,我需要它来预加载图像。这是jQuery,所以您需要在头脑中思考。这个问题有些不清楚。您希望在输出HTML之前还是之后将SRC放入数组中?不建议使用正则表达式解析HTML。为什么不建议使用正则表达式?请参阅此处的接受答案:
var MyHTML = 
'<div><ul><li><img src="http://aaa.ru/image1.png" /></li><li><img src="http://aaa.ru/image2.png" /></li><li><img src="http://aaa.ru/image3.png" /></li></ul></div>';
var srcRegex = /<img src="([^"]+)" \/>/ig;

var matches = [];
while (srcRegex.exec(MyHTML)) {
  matches.push(RegExp.$1);
}

//contains all cookie values
console.log(matches);