我有一个文本块这样的:限制文本一定数目的字符忽略HTML标签/属性
<p class="post">Lorem ipsum dolor sit amet, <a href="http://website.com/link" target="_blank" title="hello">consectetur adipiscing elit</a>. Pellentesque vehicula tortor eget tortor fermentum bibendum. Duis mollis nisl et metus vulputate, a aliquam quam pharetra. <a href="http://website.com/link" target="_blank" title="hello">consectetur adipiscing elit</a> quis hendrerit nibh ultrices eget. <span class="highlight">Praesent</span> eu mollis lectus, sed convallis quam.</p>
我想经过100个字符截断文本。只需一个文本字符串,我会使用类似:
var new_string = text_string.substring(0,100);
但我需要计时的字符时,使其截断后100个可见字符的文本,以文本中的链接和其他HTML考虑,不是100个字符的HTML本身,并且保留文本中的HTML标记。
注意:我不能保留任何HTML标记,因此我需要在截断标记之前不截断文本,或截断文本,然后添加正确的结束标记。
可以做到这一点吗?
您可以按文档顺序遍历节点,并且无论何时到达文本节点时,都可以查看它有多少个字符。保持运行总数,当你到达超过最大值的节点时,截断那里,然后清空每个后续的文本节点。 – 2016-12-16 22:13:16
你可以运行正则表达式来查找><之间的所有文本。 – Alon
你想要去掉html吗?或截断文本并离开HTML?这通常是在清除html之后完成的,因为只计算文本并且仍然有一个有效的html,没有一堆空的html标记或格式可能会炸毁布局,这并不容易。 –