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

JavaScript使用slice实现文本按指定长度截断到下一句句号问题求解

文本截断功能修正方案

原代码错误原因

  • 调用fulltext.indexOf(".")没有指定起始查找位置,只会返回整个字符串中第一个句号的索引,不符合「超出指定长度后找首个句号」的要求
  • 切片计算逻辑错误,直接将指定长度num和第一个句号位置相加,导致切片长度计算完全不符合预期

修正后代码

function shorten(text, num) {
    const fulltext = text.toString();
    // 文本长度不足阈值直接返回原内容
    if (fulltext.length <= num) {
        return fulltext;
    }
    // 从num位置开始向后查找第一个句号的索引
    const dotIndex = fulltext.indexOf('.', num);
    // 边界处理:如果num之后没有句号,直接返回原文本,也可根据需求调整为返回fulltext.slice(0, num)
    if (dotIndex === -1) {
        return fulltext;
    }
    // 截断到句号后一位,把句号本身包含在返回结果中
    return fulltext.slice(0, dotIndex + 1);
}

效果验证

用你给出的测试用例验证:
输入参数:

  • text = "Hello. This is a test example. This part should be removed."
  • num = 10
    调用修正后的函数会从第10位开始查找第一个句号,对应索引就是第一个长句的末尾位置,最终返回结果和你的预期完全一致。

内容的提问来源于stack exchange,提问作者Fred Lu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:54:01