0

我是 JavaScript 新手。我有一个包含几个句子的文本,我希望每个句子都是名为句子和警报的数组中的一个条目(“创建了新条目”)。所以我必须循环遍历,只要有一个“。” 将开始一个新条目。但是我怎样才能通过一个文本直到它结束呢?

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

4 回答 4

2

您可以通过拆分然后修剪并添加句号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() + ".";
}

将文本拆分为 on". "而不是 on"."意味着它将适用于类似的句子"That costs $10.50."

于 2013-04-07T12:45:08.463 回答
2

使用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] = "";
    }
}
于 2013-04-07T12:45:38.700 回答
1

您可以使用split

var myText= "I like cars. I like pandas. I like blue. I like music.";
var sentences  = myText.split(".");
于 2013-04-07T12:45:37.363 回答
1

虽然@Pietu1998 的回答向您展示了如何遍历字符串的字符,但从这样的字符串中获取句子数组的更舒适的方法是匹配则表达式

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

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

于 2013-04-07T13:02:30.610 回答