为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2023-11-02 16:49:48
我以前看到过一个问题,但它只计算某个类中的单词数。我希望我的代码从许多不同类型的标签和类中打印出页面中显示的字数。例如:来自 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 中的“我的第一个段落”。我不确定如何执行此操作,但我认为它会是类似于给定代码的东西。
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

我使用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" />


查看完整回答
反对 回复 2023-11-02
?
POPMUISE

TA贡献1765条经验 获得超5个赞

您可以用来HTMLElement.innerText获取网页的文本。然后,您可以使用模式通过空格字符将字符串拆分为数组。那么字符串的长度应该是你的字数。

document.getElementById("demo").innerHTML = document.body.innerText.split(/\s/).length


查看完整回答
反对 回复 2023-11-02
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

如果使用 javascript 需要innerTextthensplit(/\s/).filter(Boolean)


为什么使用过滤器(布尔)? 在 javascript 中,检测有效单词非常重要。

尝试一下,如果你只使用 likeinnerText.split(/\s/).length会得到不同的计数。


这个例子是 JavaScript


document.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>


查看完整回答
反对 回复 2023-11-02
  • 3 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信