画像や添付ファイルを取り、後で自分で使用するためにデータの配列を作成するミニ パーサーを作成しています。
パターンを使用してデータを正常に解析できますが、元のテキストを解析する方法は、2 つの個別の一致ループを実行してデータを取得し、配列にプッシュすることです。
その結果、最終的な配列内のデータの順序は、元のテキストに対して順不同になります。次に例を示します。
元データ
[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++;
}