如果是一个字符串,直接分隔就好,上面都说了 var s='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]'; var arr=s.split(','); alert(arr[1]);
[]内也有同“,”,还挺麻烦var str='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]'; var arr = str.replace(/\[.*?\]/g,function(t){return t.replace(/,/g,"`");}).replace(/,/g,"~").replace(/`/g,",").split("~"); alert(arr[3]);
你的字符串符合一定的规则就可以,不知道你的里面究竟包含了些什么,针对此例你可以如下去匹配 var s='[全局?白天开始,全局?白,天结束],[全局?晚上,开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]'; var arr=s.match(/\[[^\[\]]+?\]|"[^"]+?"/g); alert(arr[3]);
最麻烦的就是这个:["HIGH,MIDDLE","LOW"]
这个不能用字符串简单处理的,最好还是用正则做比较好。 var str='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]'; var reg=new RegExp(/\[.+?\]|".+?"/g); var arr=str.match(reg); console.log(arr);输出结果:["[全局?白天开始..全局?白天结束]", "[全局?晚上开始..全局?晚上结束]", ""-"", "["HIGH,MIDDLE","LOW"]"] 不知道能否满足楼主需求
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"));
var s='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]';
var arr=s.split(',');
alert(arr[1]);
var arr = str.replace(/\[.*?\]/g,function(t){return t.replace(/,/g,"`");}).replace(/,/g,"~").replace(/`/g,",").split("~");
alert(arr[3]);
var s='[全局?白天开始,全局?白,天结束],[全局?晚上,开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]';
var arr=s.match(/\[[^\[\]]+?\]|"[^"]+?"/g);
alert(arr[3]);
var str='[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"-",["HIGH,MIDDLE","LOW"]';
var reg=new RegExp(/\[.+?\]|".+?"/g);
var arr=str.match(reg);
console.log(arr);输出结果:["[全局?白天开始..全局?白天结束]", "[全局?晚上开始..全局?晚上结束]", ""-"", "["HIGH,MIDDLE","LOW"]"]
不知道能否满足楼主需求
我的本意是希望能通过 逗号 分割出数组,但是由于这个情况有这么多,搞不定希望大神再帮一把[全局?白天开始..全局?白天结束],[全局?晚上开始..全局?晚上结束],"a,b",["HIGH,MIDDLE","LOW"],>50,<50,=50,全局?白天开始,>全局?白天开始
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"));
[全局?晚上开始..全局?晚上结束]
"a,b"
["HIGH,MIDDLE","LOW"]
>50
<50
=50
全局?白天开始
>全局?白天开始