带有正则表达式错误的String.split

时间:2018-11-13 11:15:02

标签: javascript regex

我想用可变数量的连续字符分割字符串

  

splitBy4('XXXXXXXX')=> ['XXXX','XXXX']

在注入变量之前,一切正常:

console.log('XXXXXXXX'.split(/(\w{4})/).filter(Boolean));
// outputs : ['XXXX', 'XXXX']
console.log('XXXXXXXX'.split(new RegExp(/(\w{4})/)).filter(Boolean));
// outputs : ['XXXX', 'XXXX']

但是当我尝试使用RegExp类+字符串表示形式(注入我的参数)时,它失败了:

console.log('XXXXXXXX'.split(new RegExp('(\w{4})')).filter(Boolean));
// outputs ['XXXXXXXX']

const nb = 4;
console.log('XXXXXXXX'.split(new RegExp('(\w{'+ nb +'})')).filter(Boolean));
// outputs ['XXXXXXXX']

我缺少什么?如何注入参数? 谢谢

1 个答案:

答案 0 :(得分:-1)

const nb = "4";
var myRegex = new RegExp('(\\w{' + nb + '})', 'g');
var myArray = myRegex.exec('XXXXXXXX');
console.log(myArray.toString());