缩短的HTML文本和格式错误的标签
问题描述:
在我的Web应用程序中,如果长度超过300个字符,我打算缩短HTML格式文本的冗长字符串,然后在页面上显示300个字符和Read More
链接。缩短的HTML文本和格式错误的标签
我碰到是当一个HTML标签,例如内达到300个字符的限制问题:(看这里)
<a hreHERE="somewhere">link</a>
<a hre="somewhere">liHEREnk</a>
发生这种情况时,整个页面可能成为不良格式化,因为一切在上例中的HERE
被删除并且HTML标记保持打开状态后。
我想使用CSS来隐藏任何超出特定限制的溢出,并在文本超出特定数字时创建“Read More”链接,但这会让我包括页面上的所有文本。
我也想过在.
处分割文本以确保它在句子结尾处分割,但这意味着我会包含比我需要的更多的字符。
有没有更好的方法来实现这个目标?
注意:我没有指定服务器端语言,因为这是更常见的问题,但我使用ASP.NET/C#。
答
我能想到的一个选择是在300个字符处剪下它,并确保'<'的最后一个索引小于'>'的最后一个索引。如果是这样,在'>'的最后一个实例之前截断字符串,然后使用像tidy html这样的库来修复孤立标签(如示例中的</a >)。
虽然有这个问题。有一点是,如果有300个字符只是HTML,那么您的摘要将显示为空白。
如果您不需要显示html,则只需简单地提取纯文本并使用它即可。
编辑:添加使用像孤儿标签整齐html的东西。原始答案只解决中间标签的切割问题,而不是在开启/关闭标签内。