繁体   English   中英

Javascript:将字符串转换为字符串数组

[英]Javascript : Converting String Into Array Of Strings

我有 javascript 类型的字符串 -

"[
 'abc',
 'def',
 'ghi'
]"

上面的示例是字符串类型的。 我想把它转换成数组 object -> 字符串数组 ->

[
'abc',
     'def',
     'ghi'
]

我尝试使用 map function - array.map(strArray,string)但出现语法错误,因为 strArray 本身不是数组,而是它的字符串。

如果字符串是符合 JavaScript 的有效字符串(引号正确转义,由反引号、单引号、双引号等分隔),您可以eval字符串化数组。

arrayOfStrings = eval(strArray);

这会将字符串计算为 JavaScript 表达式。 请注意, eval function 有时不受欢迎,因为它可能导致误解。

如果您的字符串化数组是有效的 JSON 字符串,则可以JSON.parse代替:

arrayOfStrings = JSON.parse(strArray);

这种方法的适用性有一些限制; 例如,字符串必须用双引号分隔,因为这是正确的 JSON 格式。 还有其他限制。

对于非常非常一般的情况(例如,如果您的数组不使用引号: [abc, blah blah, cd] ),您将需要捕获字符串。 假设字符串不包含逗号,您可以这样做:

const parseStringArray = l => l.replace(/\n|\[|\]/g, '').split(',')

该解决方案做了以下假设:字符串不包含逗号(见上文),不包含换行符,不包含方括号,用逗号分隔,字符串化列表的格式如下:

<open square brace><zero or more newlines><zero or more of (<string which can contain any character except comma, newline, open square brace or close square brace><zero or more newlines>)><close square brace>

(对不起,我对正则表达式不是很熟悉,但如果有人可以为我提供正则表达式,那将非常有帮助。)

let x = "[1,2,3]"

x = JSON.parse(x)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM