JavaScript句子统计函数仅返回1,无法正确统计总句子数
句子统计函数修正方案
根因
现有实现仅校验字符串最后一位是否为句子终止符,未遍历全量内容统计所有终止符,因此计数最多为1。
修正实现
方案1:正则匹配(最简洁)
const sentenceTotal = (word) => { const endMarks = word.match(/[.!?]/g); return endMarks ? endMarks.length : 0; };
方案2:全字符遍历(匹配原有遍历逻辑思路)
const sentenceTotal = (word) => { let sCount = 0; // 逐字符遍历全字符串 for (const char of word) { if (char === "." || char === "!" || char === "?") { sCount += 1; } } return sCount; };
验证结果
执行 console.log(sentenceTotal(story)) 将返回正确结果12,符合预期。
扩展提示:如果后续需要排除小数、缩写中的非终止符
.,可调整正则规则,增加终止符的边界校验(如匹配空格/字符串末尾前的终止符),当前测试用story中所有.均为句子终止符,无需额外处理。
内容的提问来源于stack exchange,提问作者Aidan Cook
相关产品推荐
相关产品推荐

