比如说这一个式子(1 + 2)(1 + (1 + 2)),我想拿到里面的"1 + 2" 和 "1 + (1 + 2)",怎么做?
当左边括号里和右边括号里的括号数量无限多(都是成对的括号),我也要取到左边括号和右边括号里的字符串。
比如说这一个式子(1 + 2)(1 + (1 + 2)),我想拿到里面的"1 + 2" 和 "1 + (1 + 2)",怎么做?
当左边括号里和右边括号里的括号数量无限多(都是成对的括号),我也要取到左边括号和右边括号里的字符串。
var str = '(1+2)(1+(1+2))',
i = -1,
len = str.length,
stack = 0,
start = 0,
result = [];
while (++i < len) {
var c = str.charAt(i);
if (c === '(') {
if (stack === 0) {
start = i;
}
stack++;
} else if (c === ')') {
stack--;
if (stack === 0) {
result.push(str.substring(start, i + 1));
}
}
}
console.log(result);