javascript - 将类似字符串的数组替换为带有字符替换的数组

标签 javascript regex arrays string 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]]

关于javascript - 将类似字符串的数组替换为带有字符替换的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19651209/

相关文章:

javascript - 使用javascript加载xml文件

javascript - 调整图像大小以适合其容器

java - 复杂模式匹配

java - 将 List<ArrayList> 转换为 String[]

javascript - react /Redux : modified state is not updated in view

python - 匹配两个字符串之间包含第三个字符串的所有内容

javascript - 以某个词结尾的正则表达式

java - 如何将数组传递给构造函数?

c - 如何提取字符串数组的最后3位并将其存储到C中的不同int数组中

javascript - 根据请求数据动态创建 SVG