webForumDet fria alternativet
Logga in / Bli medlem

RegExp - Motsvarighet till MatchCollection

JavaScript

2 svar · 207 visningar · startad av Erik Juhlin

Medlem sedan maj 200010 687 inlägg
Trådstart#1

I VB när jag vill få ut saker som finns flera gånger i en sträng så använder jag en matchcollection. Hur gör man det i JavaScript så man får det i en array eller liknande?

Med exec får man en array, men inte av de olika träffarna utan saker man satt paranteser runt. Vill ha en matris. så jag kan skriva typ: m[1][0].

Medlem sedan juni 20004 308 inlägg
#2

Parenteserna i ett regexp betyder just att regexpet skall sparas, men skall du bearbeta datat på en gång kan man ju...

var str="bla bla 12:12 bla bla bla 13:03 bla";
var re=/(\d{2}):(\d{2})/g;
var a=new Array();

while (a=re.exec(str)){
alert(a[0]);
}

a[1] är timdelen av klockslaget och a[2] är minuterna. Eller för att spara en en 2 dimensionell array;

var str="bla bla 12:12 bla bla bla 13:03 bla";
var re=/(\d{2}):(\d{2})/g;
var a=new Array();

while (a[a.length]=re.exec(str)){}

alert(a[0][0]);
alert(a[1][0]);
Medlem sedan maj 200010 687 inlägg
#3

Tack igen Jojoxx! :)

249 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)