如何使用substring或slice方法截取两个匹配字符间的字符串?
完全可以实现,核心思路是先找到所有字符a在字符串中的下标位置,再通过substring/slice方法截取相邻两个下标之间的片段即可,具体实现如下:
let str = 'axybexaseraszarasxar'; // 第一步:收集所有a的下标位置 const aIndexes = []; for (let i = 0; i < str.length; i++) { if (str[i] === 'a') aIndexes.push(i); } // 第二步:截取相邻a之间的内容(包含两端a) const result = []; for (let i = 0; i < aIndexes.length - 1; i++) { // substring第一个参数是起始下标(包含),第二个是结束下标(不包含),所以结束位置要+1才能包含第二个a const segment = str.substring(aIndexes[i], aIndexes[i+1] + 1); // 用slice的话写法完全一致:str.slice(aIndexes[i], aIndexes[i+1] + 1) result.push(segment); } console.log(result); // 输出所有符合要求的片段,取result[0]即可拿到你示例中的'axybexa'
补充说明:
- 两种方法在这里的用法没有区别,只要计算好起止下标即可:起始下标是前一个a的位置(直接用收集到的索引),结束下标是后一个a的位置+1(因为两个方法的第二个参数对应的位置都不会被包含在返回结果里)
- 如果只需要特定位置的相邻a片段,直接按索引取对应结果即可
内容的提问来源于stack exchange,提问作者Kaleem Bhattii
相关产品推荐
相关产品推荐

