用字符替换将字符串之类的数组替换为数组
Replace array like string to array with character replace
>我有一个这样的字符串"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);
输出:
[[12,a],b,c,[c,d]]
你能试试这个吗?
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 );
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)
试试这个
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- Javascript替换字节数组序列
- 如何检查和替换数组中的值
- Javascript:字符串中有效的基于数组的替换
- 用数组(javascript)中的值替换regex捕获
- 将数组存储到本地存储中,而不是替换
- 将对象值替换为外部数组中的值
- 如何在 JavaScript 中将数组中的 [ ] 替换为 var 结果
- 合并/替换Javascript数组
- 使用Javascript regex替换“index”数组字符串
- 将数组值替换为循环以创建新数组
- 无法替换Javascript中对象数组的键
- JavaScript:替换数组中的字符串
- 用字符替换将字符串之类的数组替换为数组
- 挖空 JS - 数组替换,同时保留相同的元素
- API/应用程序设计:用新数组替换非常大的数组或修改现有数组
- jQuery:用数组替换数组
- 用数组替换重复的代码,并对其进行迭代
- 如何用jQuery对象数组替换一个DOM元素?
- DOM -用节点数组替换节点(有效地)