在JavaScript开发中,处理特殊符号分隔的字符串是常见需求,截取两个“+”号之间的字符串可以通过多种方法实现,不同方法的适用场景和复杂度有所差异,开发者可以根据实际需求选择合适的方式。

方法一:使用indexOf和substring组合
这种方法是先找到第一个“+”号和第二个“+”号的位置,再通过substring方法截取中间的内容,适合字符串中仅存在两个“+”号或者只需要截取前两个“+”号之间内容的场景。
// 定义待处理的字符串
let str = "a+b+c";
// 找到第一个+的位置
let firstIndex = str.indexOf("+");
// 找到第二个+的位置,从第一个+的下一个位置开始查找
let secondIndex = str.indexOf("+", firstIndex + 1);
// 判断两个+都存在的情况
if (firstIndex !== -1 && secondIndex !== -1) {
// 截取两个+之间的内容,不包含+本身
let result = str.substring(firstIndex + 1, secondIndex);
console.log(result); // 输出 b
} else {
console.log("字符串中不存在两个+号");
}
方法二:使用split方法分割
split方法可以按照指定的分隔符将字符串分割成数组,之后直接取数组对应位置的元素即可,适合字符串中“+”号数量不固定,需要获取任意两个相邻“+”号之间内容的场景。
let str = "a+b+c+d";
// 按照+分割字符串,得到数组 ["a", "b", "c", "d"]
let arr = str.split("+");
// 取第一个和第二个+之间的内容,即数组索引1的元素
let result = arr[1];
console.log(result); // 输出 b
// 如果需要取第二个和第三个+之间的内容,取索引2的元素即可
let result2 = arr[2];
console.log(result2); // 输出 c
方法三:使用正则表达式匹配
正则匹配的方式可以更灵活地适配不同的字符串格式,比如可以处理“+”号前后有空格的情况,也可以直接匹配出两个“+”号之间的内容,不需要额外计算位置或者分割数组。
let str = "a + b + c";
// 正则含义:匹配+后面到下一个+之前的内容,允许+前后有空格
let reg = /+s*(.*?)s*+/;
let matchResult = str.match(reg);
if (matchResult) {
// matchResult[1]就是两个+之间的内容
console.log(matchResult[1]); // 输出 b
} else {
console.log("未匹配到两个+号");
}
不同方法的对比
三种方法的特性对比如下:
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| indexOf+substring | 逻辑直观,性能较好,不需要额外创建数组 | 只能处理前两个+号的情况,需要手动判断边界 | 字符串中+号数量固定,只需要截取前两个+之间的内容 |
| split分割 | 代码简洁,可以轻松获取任意相邻+号之间的内容 | 会创建新的数组,占用额外内存,不适合超长字符串 | +号数量不固定,需要获取多个分段内容的场景 |
| 正则匹配 | 灵活度高,可以适配带空格等复杂格式的字符串 | 正则编写有一定门槛,性能略低于前两种方法 | 字符串格式不固定,+号前后可能有其他字符的场景 |
边界情况处理
实际开发中还需要考虑一些边界情况,比如字符串中只有一个“+”号、没有“+”号、或者“+”号连续出现的情况,下面给出对应的处理示例:
function getStrBetweenPlus(str) {
// 正则匹配两个非连续的+号之间的内容
let reg = /+(.+?)+/;
let match = str.match(reg);
if (match) {
return match[1];
} else {
return "";
}
}
// 测试不同场景
console.log(getStrBetweenPlus("a+b+c")); // 输出 b
console.log(getStrBetweenPlus("a+b")); // 输出 空字符串,只有一个+
console.log(getStrBetweenPlus("abc")); // 输出 空字符串,没有+
console.log(getStrBetweenPlus("a++c")); // 输出 空字符串,两个+连续,中间无内容
开发者可以根据实际的业务场景选择合适的方法,同时做好边界情况的判断,避免出现逻辑错误。
JavaScript字符串截取indexOfsubstringsplit修改时间:2026-07-12 22:39:23