You need to enable JavaScript to run this app. jQuery如何提取数组元素中方括号包裹的指定数字
优惠活动
大模型
产品
解决方案
定价
更多

jQuery如何提取数组元素中方括号包裹的指定数字

数组内字符串提取方括号包裹数字的实现方法

针对你已生成的productArray数据,可以直接遍历数组项提取目标值,两种无依赖的实现方案如下:

正则匹配方案(适配性更强,代码简洁)

通过正则表达式精准定位方括号内的连续数字,避免和字符串后方的普通数字混淆:

const extractedIds = productArray.map(item => {
  const matched = item.match(/\[(\d+)\]/);
  // 匹配成功返回数字类型结果,失败可按业务设置兜底值
  return matched ? Number(matched[1]) : null;
});

对示例数据["[44]Medicine 2", "[63]Test Sam "]执行上述代码,最终得到的结果为[44, 63],完全匹配提取需求。
如果可以确认每一项都严格遵循[数字]前缀 + 内容的格式,不需要做匹配失败的兜底处理,可将代码简化为:

const extractedIds = productArray.map(item => Number(item.match(/\[(\d+)\]/)[1]));

注意:如果字符串内方括号和数字之间存在空格(例如[ 44 ]Medicine),可以将正则调整为/\[\s*(\d+)\s*\]/,兼容带冗余空格的格式。

纯字符串截取方案(不使用正则)

如果不想引入正则语法,可以通过定位方括号索引、截取中间内容的方式提取数字:

const extractedIds = productArray.map(item => {
  const leftBracketIdx = item.indexOf('[');
  const rightBracketIdx = item.indexOf(']');
  if (leftBracketIdx === -1 || rightBracketIdx === -1 || rightBracketIdx <= leftBracketIdx) return null;
  return Number(item.slice(leftBracketIdx + 1, rightBracketIdx));
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 23:36:05