How do I use the number range in regex matched groups in a loop in javascript? -


i'm looking use numbers in regex find , run loop using first number starting point , last number ending point , write text using javascript core objects, methods or functions. have array of strings in form '<disp-formula id="deqn4-9">', '<disp-formula id="deqn15-17">' , on.. , using array want write below: expected output:

rid"4"/<disp-formula id="deqn4-9"> rid"5"/<disp-formula id="deqn4-9"> rid"6"/<disp-formula id="deqn4-9"> rid"7"/<disp-formula id="deqn4-9"> rid"8"/<disp-formula id="deqn4-9"> rid"9"/<disp-formula id="deqn4-9"> rid"15"/<disp-formula id="deqn15-17"> rid"16"/<disp-formula id="deqn15-17"> rid"17"/<disp-formula id="deqn15-17"> 

basically, takes number range array , uses every single number fall in range , write in above mentioned fashion. i've tried below code:

var mystring = ['<disp-formula id="deqn4-9">', '<disp-formula id="deqn15-17">'];             var myregexp = /(\d+)-(\d+)/g;             my_arr = myregexp.exec(mystring);             while (my_arr != null) {                 var a1 = my_arr[0];                 var xs = a1.split("-");                 var new1=xs[0];                 var new2=xs[1];                 (var i=new1; i<=new2; i++){                     console.log('rid"'+i+'"/'+mystring[0]);                 }                 var a2 = my_arr[1];                 var ys = a2.split("-");                 var _new1=xs[0];                 var _new2=xs[1];                 (var j=_new1; j<=_new2; j++){                     console.log('rid"'+j+'"/'+mystring[1]);                 }                 my_arr = myregexp.exec(mystring);             } 

but returns

rid"4"/<disp-formula id="deqn4-9"> rid"5"/<disp-formula id="deqn4-9"> rid"6"/<disp-formula id="deqn4-9"> rid"7"/<disp-formula id="deqn4-9"> rid"8"/<disp-formula id="deqn4-9"> rid"9"/<disp-formula id="deqn4-9"> rid"4"/<disp-formula id="deqn15-17"> rid"5"/<disp-formula id="deqn15-17"> rid"6"/<disp-formula id="deqn15-17"> rid"7"/<disp-formula id="deqn15-17"> rid"8"/<disp-formula id="deqn15-17"> rid"9"/<disp-formula id="deqn15-17"> rid"15"/<disp-formula id="deqn4-9"> rid"16"/<disp-formula id="deqn4-9"> rid"17"/<disp-formula id="deqn4-9"> rid"15"/<disp-formula id="deqn15-17"> rid"16"/<disp-formula id="deqn15-17"> rid"17"/<disp-formula id="deqn15-17"> 

what doing wrong here?

i modified code work

var mystring = ['<disp-formula id="deqn4-9">', '<disp-formula id="deqn15-17">', '<disp-formula id="deqn99-100">', '<disp-formula id="deqn999-1001">'];  var myregexp = /(\d+)-(\d+)/g;  my_arr = myregexp.exec(mystring);  var idx = 0;  while (my_arr != null) {      var a1 = my_arr[0];      var xs = a1.split("-");      var new1=parseint(xs[0]);      var new2=parseint(xs[1]);      (var i=new1; i<=new2; i++){          console.log('rid"'+i+'"/'+mystring[idx]);      }      idx++;      my_arr = myregexp.exec(mystring);  }

the mistakes were

var a2 = my_arr[1]; 

this matched 1st capturing group(i.e 4) , not 2nd match

my_arr = myregexp.exec(mystring); 

this move on next match , print mystring[idx] on

now did change make work, if refer this mdn blog see part

var a2 = my_arr[1]; var ys = a2.split("-"); var _new1=xs[0]; var _new2=xs[1]; (var j=_new1; j<=_new2; j++){     console.log('rid"'+j+'"/'+mystring[1]); } 

is of no use removed it. move on next idx did

idx++ my_arr = myregexp.exec(mystring); 

now my_arr move on next match


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -