得到所有内括号/括号

时间:2016-01-11 13:21:46

标签: javascript regex string brackets

我正在努力获取JavaScript中字符串的所有内部括号。

例如,如果我有一个这样的字符串(不要打扰%符号,Qx值被它包围)

((!%Q1% || %Q2%) || ((%Q3% && %Q4%) || (%Q5% && %Q6%)))

我想得到我的结果:

(!%Q1% || %Q2%) || ((%Q3% && %Q4%) || (%Q5% && %Q6%))
(!%Q1% || %Q2%) 
(%Q3% && %Q4%) || (%Q5% && %Q6%)
(%Q3% && %Q4%)
(%Q5% && %Q6%)

基本上我正在寻找一些通用的方法,不仅仅是上面的例子。我试图在循环中使用类似的东西这样做,但它只适用于更简单的例子(括号更少)

init = condition.indexOf('(');
fin = condition.lastIndexOf(')');
inner = condition.substr(init+1,fin-init-1);

我想只使用JS,但欢迎使用其他解决方案。

1 个答案:

答案 0 :(得分:2)

您可以使用Sean's comment at Matching Nested Constructs in JavaScript, Part 2 blog中的以下代码,只需在比赛结束时添加init()(,因为它们会被剥离:

)

相关问题