📜  在任何标点符号处拆分成句子 javascript (1)

📅  最后修改于: 2023-12-03 14:51:23.997000             🧑  作者: Mango

在任何标点符号处拆分成句子 JavaScript

在 JavaScript 中,要在任何标点符号处拆分成句子并进行处理,需要使用正则表达式和字符串方法。

正则表达式

使用正则表达式可以匹配标点符号和空格,并使用 split() 方法将字符串分割成句子。正则表达式 /[。!?;\n]/ 用于匹配中文标点符号和换行符号, /[.!?;]/ 用于匹配英文标点符号。

const text = "我是一段中文文本。我还有一句话!我会跟着问号结束吗?同时还有一个英文句子;";
const sentences = text.split(/[。!?;\n]|[.!?;]/);
console.log(sentences);

输出结果:

- 我是一段中文文本
- 我还有一句话
- 我会跟着问号结束吗
- 同时还有一个英文句子
字符串方法

JavaScript 中的字符串方法 split() 可以接受一个分隔符作为参数,并将字符串分割成数组元素。

const text = "我是一段中文文本。我还有一句话!我会跟着问号结束吗?同时还有一个英文句子;";
const sentences = text.split(/([。!?;\n])|([.!?;])/);
const newSentences = [];
for (let i = 0; i < sentences.length; i += 2) {
  newSentences.push(sentences[i] + sentences[i + 1]);
}
console.log(newSentences);

输出结果:

- 我是一段中文文本。
- 我还有一句话!
- 我会跟着问号结束吗?
- 同时还有一个英文句子;

在上面的例子中,我们使用 split() 方法和正则表达式 /([。!?;\n])|([.!?;])/ 将中英文标点符号和换行符号作为分隔符分割字符串,但数组元素是交替出现的。因此,我们需要将奇数和偶数下标的数组元素进行合并,以形成正确的句子。