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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:00:05