#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, ",");