[英]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.