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

如何将用户输入的类数组格式字符串转换为数字组成的二维数组

方案1:便捷安全的JSON解析方案

你拿到的输入字符串本身完全符合JSON数组元素的格式规范,只需要在外层补一组方括号,就可以直接用JSON.parse解析为标准数字二维数组,不需要复杂的字符串拆分处理:

// 假设inputStr是从输入框读取到的原始字符串
const inputStr = '[2, 2, 2, 2, 2, 9, 9, 9, 2, 2, 2],\n[2, 1, 1, 1, 1, 9, 9, 9, 1, 1, 2],\n[2, 1, 1,14, 1, 9, 9, 9, 1, 1, 2]'
// 外层补方括号后直接解析
const result = JSON.parse(`[${inputStr}]`)

解析完成后的result就是符合要求的数字类型二维数组,不需要额外做类型转换。该方案安全性有保障,JSON.parse只会解析合法JSON格式,不会执行任意代码,无需担心注入风险。

方案2:禁用JSON.parse场景下的正则处理方案

如果你的业务场景不允许直接使用JSON.parse,可以用正则匹配所有方括号包裹的数组片段,再逐个拆分转换为数字:

const inputStr = '[2, 2, 2, 2, 2, 9, 9, 9, 2, 2, 2],\n[2, 1, 1, 1, 1, 9, 9, 9, 1, 1, 2],\n[2, 1, 1,14, 1, 9, 9, 9, 1, 1, 2]'
// 匹配所有被中括号包裹的数组字符串片段
const arrStrList = inputStr.match(/\[([\d,\s]+)\]/g) || []
const result = arrStrList.map(str => {
  // 移除方括号、按逗号拆分、过滤空值后统一转为数字类型
  return str.replace(/\[|\]/g, '')
    .split(',')
    .filter(item => item.trim())
    .map(numStr => Number(numStr.trim()))
})

两种方案都可以直接适配你给出的输入格式,输出符合要求的数字二维数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:15:02