首页 > 解决方案 > javascript如何拆分并存储在数组中

问题描述

您好我正在尝试在包含数字图像 src 的字符串之间拆分并将它们存储在数组中。现在我只能获得 1 个图像 src,如何循环并将所有 src 图像存储到一个数组中?

var s = contentHtml;
//splits the first src
var arrStr = s.split('<img src="').pop().split('"').shift();

var numofimg = (s.split('<img src="').length - 1);

var myarray = [numofimg];

if (numofimg != 0) {
    for (int i = 0; i < numofimg; i++) {


    }
}

标签: javascript

解决方案


如果你真的想只使用字符串(即所有的 img 标签格式一致,没有额外的属性等),你可以使用正则表达式来处理它。

var contentHtml = "<html>Some junk<img src=\"abc.jpg\" />Some junk<img src=\"def.jpg\" /><p>Some junk<img src=\"9000.gif\" /></p></html>";

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

while (match = rgx.exec(contentHtml)) {
    results.push(match[1]);  // match[1] contains the captured group
}

console.log(results);

如果它是一个更复杂的文档或不一致,可能有更好的方法来做到这一点。


推荐阅读