javascript - 句子计数中不包括小数

标签 javascript

我想做的不是在段落中的句子计数中包含段落中将出现的小数值。

例如,我的段落中可能包含“0.1344”等小数或“5.00153.09”等代码。我怎样才能不将这些句号计入我的句子计数中?

最佳答案

我认为计算句子的通用方法是一件复杂的事情。但是,根据您尝试解析的输入,您可以通过后面不跟数字的点的数量来计算句子的数量。

比方说:

1 - 所有句子都以句点 (.) 结尾

2 - 点出现的唯一时间是在代码 (5.00153.09) 或小数 (23.22) 中。

3 - 不存在句点后面紧跟数字的句子。例如。 “我不是一个句子.1”

然后你可以使用正则表达式来计算句子的数量,这样:

const count = (str) => {
  const re = /\.(?![0-9])/g
  return ((str || '').match(re) || []).length
}

const str = "Sentence 5.00153.09 has a code. 0.1344 starts the second sentence.\nThird sentence is a number too 530.1344.\nAnd a fourth plain sentence here."


console.log(`'${str}' has ${count(str)} sentences`)

这里的神奇之处在于正则表达式\.(?![0-9]),它使用负数lookahead定义“后面不跟数字的点”

关于javascript - 句子计数中不包括小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322909/

相关文章:

javascript - `onChangeText={(text) => this.setState({text})` 是如何工作的?

javascript - 动态字母导航

javascript - 如何在发送前将数据附加到 XHR 请求?

Javascript删除codeigniter中的确认框

javascript - Math.max 引用的最长单词

javascript - 如何创建复选框验证,仅允许用户在选择了前一个复选框的情况下选择一个复选框?

javascript - 如何在javascript中隐藏面板

javascript - 为什么 ASP.NET 在 IE7 中导致 "Operation Aborted"错误?

javascript - 检测浏览器是否已经具有平滑滚动功能

javascript - 下划线如何使用省略