如何编写JavaScript代码统计按句号拆分的句子的非空格字符数?
字符统计脚本实现方案
原有代码问题梳理
- 使用
forEach遍历无返回值,最终函数输出为undefined,无法拿到统计结果 - 正则逻辑错误,当前写的
\s*是匹配空白字符,和「排除空格统计字符数」的需求完全相反 - 未处理
split('.')后可能出现的空字符串片段(比如原句以.结尾的场景) match方法的返回值调用方式错误,不存在.result属性
正确实现代码
function countCharWithoutSpace(sen) { // 按.拆分句子,过滤掉空片段 return sen.split('.').filter(part => part.trim() !== '').map(part => { // 替换所有空白字符后统计长度 return part.replace(/\s/g, '').length }) }
效果验证
- 测试用例1:
countCharWithoutSpace("this is a sentence")输出[15],符合示例要求 - 测试用例2:
countCharWithoutSpace("this is a sentence.hello world")输出[15, 10],实现按.拆分分别统计的需求 - 测试用例3:
countCharWithoutSpace("this is a sentence.hello world.")输出[15, 10],自动过滤结尾拆分出的空片段
内容的提问来源于stack exchange,提问作者t.deeeerp
相关产品推荐
相关产品推荐

