javascript - 是否可以在替换方法中传递变量而不是常量

标签 javascript

在下面的代码中,每 3 位数字后放置一个逗号

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

是否可以在上面的 RegEx 中传递任何变量来代替“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, ",");

关于javascript - 是否可以在替换方法中传递变量而不是常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55139435/

相关文章:

javascript - 无法获取未定义或空引用的属性 'subscribe'

javascript - 隐藏 ExtJS 面板标题

javascript - 基于 div id 的多个 jQuery 函数

javascript - 如何在不重新加载当前页面的情况下加载 URL?

javascript - Karma AngularJS Bootstrap 和窗口变量

javascript - react 函数和事件

javascript - AngularJS 路由, Controller 不执行

javascript - 将鼠标悬停在同一表格中的另一行上时更改表格行的背景颜色

javascript - 我是否缺少 vue 路由器转换的某些内容?

javascript - 选择行时启用自定义按钮(默认情况下禁用)