计算每个句子中的数字句子和单词Javascript

时间:2018-03-07 00:39:08

标签: javascript jquery

我想计算每个句子中的句子数和单词数。这段代码正在对句子进行计数,但我希望将每个句子拆分成文本放入数组中。请建议我一些更好的机制。



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery Count Number of Words in a String</title>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("button").click(function(){
            var words = $.trim($("textarea").val()).split(".");
            alert(words.length-1);
        });
    });
</script>
</head>
<body>
    <textarea cols="50">The quick brown fox jumps. over the lazy dog.</textarea>
    <br>
    <button type="button">Count Words</button>
</body>
</html>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:0)

如果句子总是用句点分隔,而单词总是用空格分隔。然后你可以用句点分隔整个文本作为分隔符来获得句子,并且对于每个句子,你再次使用空格作为分隔符进行分割。

var sentences = stringFromTextArea.split('.');
var words = [];
sentences.forEach(function(sentence) {
    words.push(sentence.split(' '));
});

答案 1 :(得分:0)

这是可行的。虽然您需要使用jQuery来编写结果,而不仅仅是控制台记录它们。这也解释了由于分裂造成的空句子/单词。

const input = 'The quick brown fox jumps. over the lazy dog.'
const result = input
  .split('.') // split the sentences
  .filter(sentence => sentence !== '') // remove empty sentences
  .map(sentence => sentence.split(' ') // split the words
  .filter(word => word !== '') // remove empty words
  .length); // get number of words in sentence

console.log(`There are ${result.length} sentences.`);
result.forEach((item, index) => {
  console.log(`Sentence ${index + 1} has ${item} words.`);
});

答案 2 :(得分:0)

$.trim($("textarea").val()).split(".")实际上已经将文本分成了一系列句子。

使用这个数组,你可以迭代它,分割单词,然后用这个方式计算每个句子。

var count = 0;
$.each(sentence, function(index, words){
    count += words.length();
})

希望这有帮助!

答案 3 :(得分:0)

对句子的假设做出结论&#39;。&#39;和由&#39;。&#39;

分隔的单词
var wordsCounts = $.trim($("textarea").val()).split(".").map(getWordCount);
function getWordCount(sentence){
    return sentence.split(' ').length;
}

您现在拥有一系列字数。数组的长度是句子数,数组中存储的每个值是句子中对应于数字index + 1

的单词数