$(someelement).text()。长度和计数字符编码?

时间:2012-04-13 18:50:54

标签: javascript jquery

让我说我有这个。

<div id="somediv"> 
hello, my friend&#39;s &amp; dog are good friends!
</div>

我认为$(somediv).text().length正在计算编码而不是渲染视图。我正在对字符串进行一些截断,如果它太长,并且因为某些字符串(动态)可能有&amp;(而不是&amp;),我如何正确计算{{1}中的总文本数在它的渲染视图中,不是编码视图?

2 个答案:

答案 0 :(得分:3)

length&amp;和类似字符计为单个字符。可能导致混乱的原因是你还会在字符串之前和之后获得空格。如果你修剪它,你会发现它是正确的。

http://jsfiddle.net/u3byj/

$.trim($(somediv).text()).length

答案 1 :(得分:0)

如果没有jQuery可用,您可以执行以下操作:

innerHTML.replace(/&(#x?[0-9a-f]+|[a-z]+);/gi,"X").length;