代码如下:
var name = 1;
var reg = new RegExp('(\\s*' + name + '|' + name + '\\s*)', 'g');
var reg2 = new RegExp('(\\s+' + name + '|' + name + '\\s+)', 'g');
var str = '1 2 3';
console.log(reg.exec(str)); //1. 结果如下图片
console.log(reg2.exec(str)); //2. 结果如下图片
竖线表示分歧,而且会短路,第一个里面是因为竖线(分歧)之前的表达式已经可以满足,第二个是因为竖线之前的不能满足,再去用竖线后面的去匹配