JS代码计算页面上的字数,而不是html文件中的字数

我以前看到过一个问题,但它只计算某个类中的单词数。我希望我的代码从许多不同类型的标签和类中打印出页面中显示的字数。例如:


来自 w3schools


<!DOCTYPE html>

<html>

<body>


<h2>My First Web Page</h2>

<p>My First Paragraph.</p>


<p id="demo"></p>


<script>

document.getElementById("demo").innerHTML = 3+9;

</script>


</body>

</html> 

此代码打印出 3+9 的值,该值在 id 位置处将是 12。我想计算页面上的单词数,在本例中为 7(h2 中的“我的第一个网页”和 p 中的“我的第一个段落”。我不确定如何执行此操作,但我认为它会是类似于给定代码的东西。


慕无忌1623718
浏览 134回答 3
3回答

慕标琳琳

我使用Boolean速记''来过滤掉split.const allText = document.body.innerText;const allWords = allText.split(/\s/).filter(Boolean);const numWords = allWords.length;document.querySelector('#demo').innerHTML = numWords;<h2>My First Web Page</h2><p>My First Paragraph.</p><p id="demo" />

POPMUISE

您可以用来HTMLElement.innerText获取网页的文本。然后,您可以使用模式通过空格字符将字符串拆分为数组。那么字符串的长度应该是你的字数。document.getElementById("demo").innerHTML = document.body.innerText.split(/\s/).length

牧羊人nacy

如果使用 javascript 需要innerTextthensplit(/\s/).filter(Boolean)为什么使用过滤器(布尔)? 在 javascript 中,检测有效单词非常重要。尝试一下,如果你只使用 likeinnerText.split(/\s/).length会得到不同的计数。这个例子是 JavaScriptdocument.getElementById("demo").innerHTML = document.getElementById("counted").innerText.split(/\s/).filter(Boolean).length<!DOCTYPE html><html><body><div id="counted"><h2>My First Web Page</h2><p>My First Paragraph.</p></div><p id="demo"></p></body></html>jQuery 示例,还有var length = $("#counted").text().trim().replace(/[\s]+/g, " ").split(" ").length;$('#demo').html(length);<!DOCTYPE html><html><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script><body><div id="counted"><h2>My First Web Page</h2><p>My First Paragraph.</p></div><p id="demo"></p></body></html>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript