我想计算每个句子中的句子数和单词数。这段代码正在对句子进行计数,但我希望将每个句子拆分成文本放入数组中。请建议我一些更好的机制。
<!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;
答案 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