我正在构建一个迷你解析器,它将获取图像或附件并构建一个数据数组供我以后使用。
我可以使用我的模式成功解析我的数据,但是,我解析原始文本的方式是运行两个单独的匹配循环来获取数据并推送到一个数组中。
结果,我的最终数组中的数据顺序相对于原始文本是乱序的。这是一个例子:
原始数据
[ATTACH]1234[/ATTACH]
[IMG]http://www.google.com/abc.gif[/IMG]
[ATTACH]5678[/ATTACH]
[IMG]http://www.google.com/def.gif[/IMG]
结果数组
0 : http://www.google.com/abc.gif
1 : http://www.google.com/def.gif
2 : 1234
3 : 5678
实际上,我希望结果数组看起来像这样
期望的结果数组
0 : 1234
1 : http://www.google.com/abc.gif
2 : 5678
3 : http://www.google.com/def.gif
这是我正在使用的代码的缩短版本
//Container Array of Images
var imagesContainerArray = {};
var daC = 0;
var finalData = {};
//Individual Images
var pattern = /\[IMG]([\s\S]*?)\[\/IMG\]/gi;
var match;
while (match = pattern.exec(text)) {
finalImageUrl = match[1];
//Other stuff i'm doing
imagesContainerArray[daC] = finalImageUrl;
daC++;
}
//Individual ATTACH
var pattern = /\[ATTACH]([\s\S]*?)\[\/ATTACH\]/gi;
var match;
while (match = pattern.exec(text)) {
finalImageUrl = match[1];
//Other stuff i'm doing
imagesContainerArray[daC] = finalImageUrl;
daC++;
}