Можно ли передать переменную вместо постоянного числа в методе replace

#javascript

#javascript

Вопрос:

в приведенном ниже коде запятая ставится после каждых 3 цифр

 {
  var commaString = valueWthOutComma.replace(/B(?=(d{3}) (?!d))/g, ",");
}
  

возможно ли передать любую переменную вместо «3» в приведенном выше регулярном выражении, чего я хочу, так это

 {
  var comma_place = 2 ; //any value can be place
  var commaString = valueWthOutComma.replace(/B(?=(d{comma_place}) (?!d))/g, ",");
}
  

Ответ №1:

Чтобы выполнить то, что вам требуется, вам нужно было бы создать регулярное выражение в виде строки вместо литерала и предоставить его RegExp() конструктору, что-то вроде этого:

 var comma_place = 2; //any value can be place
var re = new RegExp('B(?=(d{'   comma_place   '}) (?!d))', 'g');
// var re = new RegExp(`B(?=(d{${comma_place}}) (?!d))`, 'g'); // ES6 - won't work in IE
var commaString = valueWthOutComma.replace(re, ",");