我正在努力获取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,但欢迎使用其他解决方案。
答案 0 :(得分:2)
您可以使用Sean's comment at Matching Nested Constructs in JavaScript, Part 2 blog中的以下代码,只需在比赛结束时添加init()
和(
,因为它们会被剥离:
)