我有以下字符串:'[a, b]' 我想得到一个如下所示的数组:["a", "b"]
这是我写的代码:
const string = '[a, b]'
const array = string.replace('[', '').replace(']', '').replaceAll('\'', '').split(',')
console.log(array)
我的代码解决了我遇到的问题,但我想知道与我所做的相比是否有更好的方法来做到这一点。
你不能只去掉第一个和最后一个字符然后在
', '
上拆分吗?基本上和你做的一样,但代码更少
const str = '[a, b]';
console.log(str.slice(1, -1).split(', '))
你的问题不是很清楚
'[a, b]'
:你可以这样做:
const result = ['a', 'b']
因为解析任何东西都没有意义
'[a, b]'
或 '[x, d]'
str.replace(/[a-z]/g, '"$&"'
将a
变成"a"
JSON.parse
解析字符串const str = '[a, b]'
const result = JSON.parse(str.replace(/[a-z]/g, '"$&"'))
console.log(result)
/[a-z]/g
可以替换为任何其他正则表达式,具体取决于您的子字符串的复杂程度,例如/[a-zA-Z\d]+/g
将接受具有不同大小写和数字的更长子字符串
这是一个更好的解决方案,因为仅转换无效部分然后使用
JSON.parse
使得更难犯错。
但最可靠的解决方案是将您的初始字符串更改为有效的 json