如何在JavaScript中从字符串中提取符合格式的目标数组
实现方案
你可以通过正则匹配提取中括号包裹的数组结构,再转换为JS数组,代码如下:
const str = "[1,2,3,4],5,6"; const getArray = (str) => { // 匹配第一个完整的方括号数组结构 const arrayStr = str.match(/\[.*?\]/)?.[0]; return arrayStr ? JSON.parse(arrayStr) : []; } console.log(getArray(str)); // 输出 [1, 2, 3, 4]
以上方案支持数组嵌套场景,只要方括号内是合法的JSON数组格式都能正常解析。如果不想用JSON.parse,也可以通过下标截取+字符串分割实现,适合确定数组内只有平级纯数字的场景:
const getArray = (str) => { const leftBracketIndex = str.indexOf('['); const rightBracketIndex = str.indexOf(']'); // 边界处理:没有匹配到合法方括号对时返回空数组 if (leftBracketIndex === -1 || rightBracketIndex < leftBracketIndex) return []; // 截取方括号内的内容,分割后转数字,自动忽略元素前后的空格 return str.slice(leftBracketIndex + 1, rightBracketIndex) .split(',') .map(item => Number(item.trim())); }
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

