JavaScript如何截取字符串第二个.前内容 去掉末尾分段
JavaScript实现截取第二个英文句号前内容的方案
下面提供3种可直接落地的实现方式,均可覆盖需求场景:
方法1:split分割拼接(最易理解)
通过英文句号拆分字符串为数组,取前两部分拼接即可:
function getBeforeSecondDot(str) { const parts = str.trim().split('.'); // 取前两个分段拼接,不足两段则直接返回原内容 return parts.slice(0, 2).join('.'); }
测试示例
const str1 = "Event.DEAudience-90c92fe9-7fc8-f7ad-9b10-7eb778f6a857.id "; console.log(getBeforeSecondDot(str1)); // 输出:Event.DEAudience-90c92fe9-7fc8-f7ad-9b10-7eb778f6a857 const str2 = "Event.DEAudience-90c92fe9-9b10-7fc8-9b10-7eb778f68888.NNNNNNNN"; console.log(getBeforeSecondDot(str2)); // 输出:Event.DEAudience-90c92fe9-9b10-7fc8-9b10-7eb778f68888
方法2:indexOf定位截取(性能最优)
不需要拆分完整字符串,直接定位第二个句号的位置进行截取,适合处理大量长字符串场景:
function getBeforeSecondDot(str) { str = str.trim(); const firstDotPos = str.indexOf('.'); // 没有句号直接返回原内容 if (firstDotPos === -1) return str; const secondDotPos = str.indexOf('.', firstDotPos + 1); // 没有第二个句号直接返回原内容,否则截取到第二个句号之前 return secondDotPos === -1 ? str : str.slice(0, secondDotPos); }
方法3:正则匹配(代码最简洁)
通过正则规则直接匹配目标内容:
function getBeforeSecondDot(str) { const result = str.trim().match(/^[^.]+\.[^.]+/); return result ? result[0] : str; }
正则规则说明:^匹配字符串开头,[^.]+匹配连续的非句号字符,\.匹配第一个英文句号,最终匹配到第二个句号之前的所有内容。
内容的提问来源于stack exchange,提问作者Christian Harris
相关产品推荐
相关产品推荐

