如何计算javascript中的html body char?

时间:2017-02-10 10:21:52

标签: javascript jquery html

我希望通过JavaScript获取网站中的所有字符。

例如:

<p>aaa<B>a</B></p>   -> 4

<div>         ->16
<p>aaaa</p>
<p>aaaa</p>
<p>aaaa</p>
<p>aaaa</p>
</div>
........

<body>...</body>  ->X

我尝试了类似$(document.body).text();的东西,但它失败了。

2 个答案:

答案 0 :(得分:0)

使用以下

$('body').text().length; 

单词之间没有空格数

 $('body').text().replace(/ +/g, "").length;

此外,这是一个坏主意,因为您的身体可能包含CSS和JS文件。这也包括在计数中。因此,使用div id围绕要计算的html。然后使用相应的div计算特定id的字符。

Fiddle demo

答案 1 :(得分:0)

$("body").text()可能包含空格的正文的返回文本内容。您应该使用String.prototype.replace()删除空格,并使用string.length获取最终文本的长度。

$("body").text().replace(/\s+/g, "").length;

如果正文包含<script><style>标记,则应使用.filter()过滤所选文字。

var length = $("body").contents().filter(function(){
  return (this.localName != "script" && this.localName != "style") ? true : false;
}).text().replace(/\s+/g, "").length;

&#13;
&#13;
var length = $("body").contents().filter(function(){
  return (this.localName != "script" && this.localName != "style") ? true : false;
}).text().replace(/\s+/g, "").length;
console.log(length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>aaa<B>a</B></p>
<div>
  <p>aaaa</p>
  <p>aaaa</p>
  <p>aaaa</p>
  <p>aaaa</p>
</div>
<script>//script</script>
<style>style</style>
&#13;
&#13;
&#13;