日期:2014-05-16  浏览次数:20365 次

js字符串分割问题
tb_1>1 and tb_2>3 and (tb>3 and tb<4)
  这个想以and分割成一个一个子项 ,但是如果有括号的算作一个整体,这样的怎么分割开啊?最后循环输出每个子项,如:tb_1>1
  tb_2>3
  (tb>3 and tb<4)
注意:我这个字符串不是固定的,是一个动态变化的,也可能没有括号这项,也可能项数更多,我该怎样实现呢?请教高手了,谢谢!

------解决方案--------------------
split...
------解决方案--------------------
笨办法

var a = "tb_1>1 and tb_2>3 and (tb>3 and tb<4)";
var r = /(\(.*\))/g;
var b = a.match(r);
a = a.replace(r, "").split("and");
b.push(a);

应该还有其他办法吧
------解决方案--------------------
JScript code


        var str = 'tb_1>1 and tb_2>3 and (tb>3 and tb<4)';
        var reg = /\s*and\s*(?=(?:[^\(\)]*|\([^\)]+\)*)*$)/;
        var arr = str.split(reg);
        alert(arr);