Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

concat variable in regexp pattern

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.

like image 814
Oto Shavadze Avatar asked Dec 02 '22 21:12

Oto Shavadze


2 Answers

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.

like image 113
jbabey Avatar answered Dec 10 '22 12:12

jbabey


var number = "2"
var p = new RegExp("\\d{" + number + "}");
like image 45
Tim Pietzcker Avatar answered Dec 10 '22 11:12

Tim Pietzcker