如何在仅已知字符串其中一段的情况下将字符串拆分为左右两部分
JavaScript 按已知子串拆分原字符串的实现方案
核心实现逻辑为定位已知子串在原字符串中的位置,通过索引计算完成拆分,无需额外设置分隔符。返回结果的第一位固定为原字符串的左侧段(包含已知子串),第二位固定为原字符串的右侧剩余段,可直接区分左右部分。
函数实现
function splitBySegment(subject, known) { const startIndex = subject.indexOf(known) // 未匹配到已知子串时可根据业务需求调整返回逻辑,此处默认返回原串和空字符串 if (startIndex === -1) return [subject, ''] const splitPos = startIndex + known.length return [ subject.slice(0, splitPos), subject.slice(splitPos) ] }
使用示例
const subject = 'foobar'; const known = 'foo'; const [left, right] = splitBySegment(subject, known); console.log(left, right); // 输出:foo bar
拓展说明
- 若需要匹配最后一次出现的已知子串,将代码中的
indexOf替换为lastIndexOf即可 - 若需要按已知子串第N次出现的位置拆分,可先遍历统计所有匹配的起始索引,再取对应位置计算拆分点即可
内容的提问来源于stack exchange,提问作者luukvhoudt
相关产品推荐
相关产品推荐

