在 JavaScript 中,如果要将字符串 "['中国']" 转换成数组形式 ['中国'],可以使用以下几种方法:

1. 使用 JSON.parse()(推荐)

如果字符串是有效的 JSON 格式(例如 '["中国"]'),可以直接用 JSON.parse() 解析:

const str = '["中国"]';
const arr = JSON.parse(str);
console.log(arr); // ["中国"]
console.log(arr[0]); // "中国"

但如果字符串是 "['中国']"(单引号),JSON.parse 会报错,因为 JSON 标准要求字符串必须使用双引号:

const str = "['中国']";
JSON.parse(str); // ❌ 报错:Unexpected token ' in JSON

2. 使用 eval()(不推荐,存在安全风险)

eval() 可以执行字符串代码,但不推荐使用,因为它可能执行恶意代码:

const str = "['中国']";
const arr = eval(str);
console.log(arr); // ["中国"]

3. 手动处理字符串

如果字符串格式固定(如 "['中国']"),可以手动提取内容:

const str = "['中国']";
const arr = str.slice(2, -2).split("','").map(item => item.replace(/'/g, ''));
console.log(arr); // ["中国"]

4. 使用 replace() + JSON.parse() 转换单引号为双引号

如果字符串是 "['中国']",可以先用 replace() 替换单引号为双引号,再用 JSON.parse()

const str = "['中国']";
const validJsonStr = str.replace(/'/g, '"');
const arr = JSON.parse(validJsonStr);
console.log(arr); // ["中国"]

总结

方法 适用情况 示例 备注
JSON.parse(str) '["中国"]'(双引号) JSON.parse('["中国"]') ✅ 推荐
eval(str) "['中国']"(单引号) eval("['中国']") ❌ 不安全
手动处理 格式固定 str.slice(2, -2).split("','") 适用于简单情况
replace + JSON.parse "['中国']" → '["中国"]' JSON.parse(str.replace(/'/g, '"')) ✅ 推荐

推荐做法

  • 如果字符串是 '["中国"]'(双引号),直接用 JSON.parse()

  • 如果是 "['中国']"(单引号),先用 replace() 替换成双引号,再用 JSON.parse()

const str = "['中国']";
const arr = JSON.parse(str.replace(/'/g, '"'));
console.log(arr); // ["中国"]