我需要将特殊格式的字符串转换为javascript数组

时间:2019-05-16 17:45:29

标签: javascript arrays string

我正在尝试将格式化的字符串转换为JavaScript多维数组。

我已经尝试过Anyone can registersplit()函数,但似乎都不起作用。格式应该已经正确,但是我似乎无法弄清楚如何将字符串变成数组。

这是字符串:

push()

我只想要一个来自该字符串的3x6(如果我算对了)的JavaScript数组。行数会有所不同。

3 个答案:

答案 0 :(得分:1)

您可以使用JSON.parse来做到这一点:

let str = '[[24297, "CWCS Sump 002", -121.50842, 38.54798, "2", "SEWER SUMP"],[8035, "CWCS Sump 002A (56)", -121.50842, 38.54798, "2A", "SEWER SUMP"]]';

let arr = JSON.parse(str);

请注意,将'放在整个字符串内,将"放在整个字符串内会更好。可以这样做:

str.replace("'", """);

答案 1 :(得分:1)

这是JSON.parse的不错的选择;但是,单引号必须先转换为双引号才能起作用。请小心转义的引号,您可以尝试:

Imports System.Text.RegularExpressions

Module Program
    Sub Main(args As String())
        Dim t = "Hello: #World!"
        Dim re As New Regex("[#:]")
        Dim u = re.Replace(t, "")
        Console.WriteLine(u)

    End Sub
End Module

答案 2 :(得分:0)

据我说,这不会是直接的。您可以尝试这样。

let a = "[
    [24297,'CWCS Sump 002',-121.50842, 38.54798,'2','SEWER SUMP'],
    [8035,'CWCS Sump 002A (56)',-121.50842,38.54798,'2A','SEWER SUMP'],
    [9334,'CWCS Sump 001', -121.5110297,38.5703431,'1','SEWER SUMP']
]";
let c= [];

a.replace('[[','').replace(']]','').split('],[').forEach(
    (x)=>{c.push(x.split(','))}
);
//c is the result