我有這樣"12,a,{3,4},b,c"
一個字符串,我需要將其轉換成一個陣列,其中在大括號中的元素應該是一個子陣列,其結果應該是這樣的更換喜歡串用字符數組陣列替換
["12","a",[3,4],"b","c"]
對於其他例如:
"12,a,b,c,{e,f}" --> ["12","a","b","c", ["e","f"]]
"{12,a},b,c,{c,d}" --> [["12","a"],"b","c", ["e","f"]]
我有這樣"12,a,{3,4},b,c"
一個字符串,我需要將其轉換成一個陣列,其中在大括號中的元素應該是一個子陣列,其結果應該是這樣的更換喜歡串用字符數組陣列替換
["12","a",[3,4],"b","c"]
對於其他例如:
"12,a,b,c,{e,f}" --> ["12","a","b","c", ["e","f"]]
"{12,a},b,c,{c,d}" --> [["12","a"],"b","c", ["e","f"]]
你可以試試這個代碼:
a = "{12,a},b,c,{c,d}";
m = a.match(/{[^}]*}|[^,]+/g);
arr=[];
for (i=0; i<m.length; i++) {
if (m[i].indexOf('{') >= 0)
arr.push(m[i].replace(/[{}]/g, "").split(/,/));
else
arr.push(m[i]);
}
console.log(arr);
OUTPUT:
[[12,a],b,c,[c,d]]
var a = "12,a,{3,4},b,c,{2,3}";
var b = eval(("[" + a.replace(/{/g, '[').replace(/}/g, ']') + "]").replace(/[a-zA-Z]/g, function (all, match) { return "'" + all+ "'";}));
console.log(b)
試試這個
你可以試試這個。
var m = "{12,a},b,c,{c,d}".split(','),
result = m.reduce(function(a, b) {
if (b.indexOf('{') !== -1 || a.t.length){
a.t.push(b.replace(/\{|\}/,''));
} else {
a.array.push(b);
}
if (b.indexOf('}') !== -1){
a.array.push(a.t);
a.t = [];
}
return a ;
}, { array:[],t:[]}).array;
console.log(result);
會像這樣的數組是可以接受的? '[[「12」],[「a」],[「3」,「4」],[「b」],[「c」]]'這可以表示爲鋸齒狀的字符串數組。 –
是應該但最後 – Sarath
你在做什麼? –