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

如何使用JavaScript提取字符串中从第一个[到最后一个]的子串

解法1:下标定位法(兼容性最好,适用所有场景)

组合使用indexOf()获取第一个[的下标,lastIndexOf()获取最后一个]的下标,再传给substring即可,完全不依赖字符串固定长度:

const oldString = "[[{abc}, {abc}, {abc}]]....blah";
const startIndex = oldString.indexOf('[');
const endIndex = oldString.lastIndexOf(']');
// substring左闭右开,所以结束下标要+1才能包含最后一个]
const newString = oldString.substring(startIndex, endIndex + 1);
// 输出结果:"[{abc}, {abc}, {abc}]"

如果需要处理字符串中不存在[或]的边界场景,可以加一层判断避免报错:

const startIndex = oldString.indexOf('[');
const endIndex = oldString.lastIndexOf(']');
let newString = '';
if (startIndex !== -1 && endIndex !== -1 && startIndex < endIndex) {
  newString = oldString.substring(startIndex, endIndex + 1);
}

解法2:正则匹配法(写法更简洁)

利用正则的贪婪匹配特性,直接匹配从第一个[到最后一个]的所有内容:

const oldString = "[[{abc}, {abc}, {abc}]]....blah";
const newString = oldString.match(/\[.*\]/)[0];
// 输出结果:"[{abc}, {abc}, {abc}]"

正则说明:\[匹配左中括号,.*为贪婪匹配,会尽可能向后匹配所有字符直到遇到最后一个\],刚好匹配你需要的内容范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:48:00