正则替换题1 发表于 2018-01-18 | 分类于 javascript 123456789101112131415161718192021222324252627282930var str = 'x-x_';var retArr = [];str.replace(/(x_*)|(-)/g, function(match, p1, p2,pos1) { if (p1) { retArr.push({ on: true, length: p1.length }); } if (p2) { retArr.push({ on: false, length: 1 }); }});//替换的逻辑是 (或|) 左边->右边 ->左边->右边// match x p1 x p2 undefined// match - p1 undefined p2 -// match x_ p1 x_ p2 undefined// str = '';// // [{// on : true,// length : 1// },{ // on: false, // length: 1 // },{// on : true,// length : 2// }]// 没有return 不会影响字符串console.log(str);console.log(retArr);