webForumDet fria alternativet

RegExp - Motsvarighet till MatchCollection

2 svar · 207 visningar · startad av Erik Juhlin

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#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].

JojoxxMedlem 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]);
Erik JuhlinMedlem sedan maj 200010 687 inlägg
#3

Tack igen Jojoxx! :)

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)