根据条件在分隔符上拆分字符串

时间:2018-02-08 10:58:47

标签: javascript jquery arrays

我有一个类似于下面的字符串

var str = '1;2;3;{"A",B};4;6;{"C","D"}'

我想将str转换为由“;”分隔的数组

var array = [str.split(';')];

它被转换为 - > ["1","2","3","{"A",B}","4","6","{"C","D"}"]

但我需要一个与此类似的数组 - > [1,2,3,{"A",B},4,6,{"C","D"}]

所有数字都应该是数字和字符串作为字符串。我知道它可以使用循环完成,但有一种简单的方法可以做到这一点,因为实际上字符串非常大,几乎有500-600个值。 / p>

1 个答案:

答案 0 :(得分:0)

检查输入是否为数字并将其转换并删除其他内容将其转换回字符串

var str = '1;2;3;{"A",B};4;6;{"C","D"}'
str.split(';').map(x => {
        if (!isNaN(x)) {
            return parseInt(x, 10)
        }
        return x;
    }).join(',')
    .replace("\"{", "{")
    .replace("\"}", "}")

示例字符串:1,2,3,{"A",B},4,6,{"C","D}