4

I use this regex

str = "asd34rgr888gfd98";
var p = str.match(/\d{2}/);
alert(p[0]);

butI not understood how can use variable as quantificator, that is how write this:

 var number = 2;
 var p = str.match(/\d{number}/);

P.S. I see this page JavaScript regex pattern concatenate with variable but not understood how use example from these posts, in my case.

Community
  • 1
  • 1
Oto Shavadze
  • 37,634
  • 51
  • 140
  • 215

3 Answers3

10

You need to build your regex as a string and pass it to the RegExp constructor:

var regexString = '\\d{' + number + '}';
var regex = new RegExp(regexString);
var p = str.match(regex);

Notice that when building a regex via a string, you need to add some extra escape characters to escape the string as well as the regex.

jbabey
  • 44,525
  • 12
  • 67
  • 94
4
var number = "2"
var p = new RegExp("\\d{" + number + "}");
Tim Pietzcker
  • 313,408
  • 56
  • 485
  • 544
4

This should work:

var str = "asd34rgr888gfd98";
number = 3;
p = str.match(new RegExp('\\d{' + number + '}'));

alert(p[0]);
Matti Mehtonen
  • 1,607
  • 14
  • 19