You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中解析字符串化的嵌套数组?

JavaScript解析含无引号元素的嵌套数组字符串

你遇到的问题是因为JSON语法要求字符串必须用双引号包裹,而你的数组元素(比如a、b)都是裸标识符,不符合JSON规范,所以直接用JSON.parse会报错。最简便的方法是先把原字符串改造成合法的JSON格式,再用JSON.parse解析,具体步骤如下:

方法:正则替换转合法JSON

用正则表达式匹配所有裸元素(即不是括号、逗号、空格的连续字符),给它们加上双引号,转成JSON能识别的格式:

// 你的原始数组字符串
const rawStr = "[a,b,[[],[d]],[],[[[]]],[[c,[t,s]],b]]";
// 替换裸元素为带双引号的字符串
const validJsonStr = rawStr.replace(/([^\[\],\s]+)/g, '"$1"');
// 解析成JS数组
const parsedArray = JSON.parse(validJsonStr);

console.log(parsedArray);
// 输出结果:
// [
//   'a',
//   'b',
//   [ [], [ 'd' ] ],
//   [],
//   [ [ [] ] ],
//   [ [ 'c', [ 't', 's' ] ], 'b' ]
// ]

正则说明

/([^\[\],\s]+)/g 的作用是:

  • [^\[\],\s]:匹配任何不是[、]、,、空格的字符
  • +:匹配连续的这类字符
  • g:全局替换所有符合条件的内容
  • "$1":把匹配到的内容用双引号包裹

如果你的数组元素都是类似示例中的单个标识符(无特殊字符),这个方法完全够用。如果元素有更复杂的格式(比如包含空格或特殊符号),可以根据实际情况调整正则规则,但这种场景下,改造字符串用JSON.parse依然是最省心的方案,比手写递归解析器高效得多。

内容的提问来源于stack exchange,提问作者Sharon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:55:15