如何在不破坏标签的情况下截断HTML?

11

如何确保所有的HTML标签都已关闭?这个问题是因为我想要为每篇文章创建一些摘录而引起的。例如,有人像这样写了一篇文章:

Hi everyone, I'm just an article and I have few <strong>tags</strong> inside <em>of me</me>

如果我在“tags”后面截断此消息,就会出现未关闭的标签。 如何在保存用户输入到数据库之前使用Django检查所有用户输入的文本?

2个回答

10
在Django 1.7中,有一个特定的模板过滤器称为truncatechars_html:类似于truncatechars,但它可以识别HTML标签。任何在字符串中打开但未在截断点之前关闭的标签将立即在截断后关闭。另请参见truncatewords_html
对于Django<1.7,您可以使用truncatewords_html,或者基于1.7中实现的自定义过滤器(source),或使用此snippet(未测试)。还请参阅与代码片段相关的博客文章:安全截断HTML

4

1
谢谢您的留言,已经包含在答案中。 - alecxe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接