我想将看起来像字符串的数组转换为数组。
例如:
来自字符串
var str = "['Asian', 'Japanese', 'Vegetarian Friendly', 'Vegan Options', 'Gluten Free
Options']"
排列
['Asian', 'Japanese', 'Vegetarian Friendly', 'Vegan Options', 'Gluten Free Options']
我已经用正则表达式尝试过了
str.match(/'[a-z]*'/gi).map((elm)=>{
return elm.replace(/'/g,"")
})
但这并不考虑两个字之间或多个字之间的空格。
请让我知道有效的解决方案。
答案 0 :(得分:4)
将单引号替换为双引号,并用JSON.parse()
转换为数组:
var str = "['Asian', 'Japanese', 'Vegetarian Friendly', 'Vegan Options', 'Gluten Free Options ']"
var result = JSON.parse(str.replace(/'/g, '"'))
console.log(result)
答案 1 :(得分:1)
只需replace
用单引号引起来的所有单引号,然后JSON.parse()
用它引起来:
let str = "['Asian', 'Japanese', 'Vegetarian Friendly', 'Vegan Options', 'Gluten Free Options']";
str = str.replace(/'/g,'"') // replace all ' by "
let arr = JSON.parse(str) // now that it's valid JSON, parse it
console.log(arr)
答案 2 :(得分:0)
var str = "['Asian', 'Japanese', 'Vegetarian Friendly', 'Vegan Options', 'Gluten Free Options ']";
console.log(JSON.parse(str.replace(/'/g, '"')));
答案 3 :(得分:0)
str.replace(/[\[\]']+/g,'').split(', ')
尝试一下。 它适用于您发布的字符串。