JS -遍历文本,在每个"."后面创建数组条目

JS - go throught a text, make array entry after each "."

本文关键字:quot 创建 数组 遍历 JS 文本      更新时间:2023-09-26

我是JavaScript新手。我有一个文本与几个句子,我希望每个句子是一个条目在数组中命名的句子和警报("新条目")。所以我必须循环,只要有一个"。",一个新的条目就会开始。但是我怎么能读完一篇文章呢?

var sentences = []
var myText= "I like cars. I like pandas. I like blue. I like music."

您可以将myText拆分到". "上,然后修剪并添加句号。

jsFiddle

var myText = "I like cars. I like pandas. I like blue. I like music."
var sentences = myText.split(". ");
for (var i = 0; i < sentences.length; i++) {
    if (i != sentences.length - 1)
        sentences[i] = sentences[i].trim() + ".";
}

". "而不是"."上分割文本将意味着它将在"That costs $10.50."等句子上工作

使用String.charAt(index)

var sentences = [""];
var count = 0;
for(var i = 0; i < myText.length; i++){
    var current = myText.charAt(i);
    sentences[count] += current;
    if(current == "."){
        count++;
        sentences[count] = "";
    }
}

您可以使用split

var myText= "I like cars. I like pandas. I like blue. I like music.";
var sentences  = myText.split(".");

虽然@Pietu1998的答案向您展示了如何遍行字符串中的字符,但从这样的字符串中获得句子数组的更舒适的方法是通过与正则表达式匹配:

var myText= "I like cars. I like pandas. I like blue. I like music.";
var sentences = myText.match(/'S[^.]*'./g) || [];

当然这只是在每个点上分割字符串,在现实生活中并不是每个句子都以点结束,也不是每个点结束一个句子。