解决方案 »

  1.   

    如果是一个字符串,直接分隔就好,上面都说了
    var s='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]';
    var arr=s.split(',');
    alert(arr[1]);
      

  2.   

    []内也有同“,”,还挺麻烦var str='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]';
    var arr = str.replace(/\[.*?\]/g,function(t){return t.replace(/,/g,"`");}).replace(/,/g,"~").replace(/`/g,",").split("~");
    alert(arr[3]);
      

  3.   

    你的字符串符合一定的规则就可以,不知道你的里面究竟包含了些什么,针对此例你可以如下去匹配
    var s='[全局?白天开始,全局?白,天结束],[全局?晚上,开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]';
    var arr=s.match(/\[[^\[\]]+?\]|"[^"]+?"/g);
    alert(arr[3]);
      

  4.   

    最麻烦的就是这个:["HIGH,MIDDLE","LOW"]
      

  5.   

    这个不能用字符串简单处理的,最好还是用正则做比较好。
    var str='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]';
    var reg=new RegExp(/\[.+?\]|".+?"/g);
    var arr=str.match(reg);
    console.log(arr);输出结果:["[全局?白天开始..全局?白天结束]", "[全局?晚上开始..全局?晚上结束]", ""-"", "["HIGH,MIDDLE","LOW"]"]
    不知道能否满足楼主需求
      

  6.   

    大神,你刚刚那个确实是好了,但是是针对字符串来的,我这里把可能性穷举了一下,增加了后面几个可能性
    我的本意是希望能通过 逗号 分割出数组,但是由于这个情况有这么多,搞不定希望大神再帮一把[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"a,b",["HIGH,MIDDLE","LOW"],>50,<50,=50,全局?白天开始,>全局?白天开始
      

  7.   


    var str='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"a,b",["HIGH,MIDDLE","LOW"],>50,<50,=50,全局?白天开始,>全局?白天开始';
    var arr = str.replace(/\[.*?\]|([\"\']).*?\1/g,function(t){return t.replace(/,/g,"`");}).replace(/,/g,"~").replace(/`/g,",").split("~");
    alert(arr.join("\n"));
      

  8.   

    我直接把分隔符变成换行符了,确实不要钻牛角尖,谢谢大家~~~~~~~~~[全局?白天开始..全局?白天结束]
    [全局?晚上开始..全局?晚上结束]
    "a,b"
    ["HIGH,MIDDLE","LOW"]
    >50
    <50
    =50
    全局?白天开始
    >全局?白天开始