Javascript 在replace方法中是否可以传递变量而不是常量
在下面的代码中,每3位数字后加逗号Javascript 在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})
{
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, ",");
}
要执行所需操作,您需要将正则表达式构建为字符串而不是文本,并将其提供给
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, ",");