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
  • 40,603
  • 55
  • 152
  • 236

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
  • 45,965
  • 12
  • 71
  • 94
4
var number = "2"
var p = new RegExp("\\d{" + number + "}");
Tim Pietzcker
  • 328,213
  • 58
  • 503
  • 561
4

This should work:

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

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