正则替换题1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var 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);