如何永久删除django模板(过滤器)中的html标签?

时间:2011-08-01 11:47:17

标签: django django-templates django-template-filters

我尝试使用“striptags”和“removetags:”但不太合适。文字是这样的:

bla, bla, bla <p style="margin-top: 10px; margin-right: 0px; ....

如果我使用带有截断词的striptags或removetags,模板会完全崩溃。

2 个答案:

答案 0 :(得分:1)

在截断文本之前删除标记,或使用HTML-aware truncatewords_html。如果不这样做,你就会对损坏的数据进行操作。

答案 1 :(得分:1)

你应该首先清理字符串,然后使用truncate words ..如果strip_tags不能正常工作,你可以使用正则表达式来清理标签。

import re
string = "<a href=''>abc</a>"
string = re.sub("<\!?\\\\?\/?\w+[^>]*>", "", string)

此正则表达式将清除所有标签的打开,关闭和注释标签。这是简单的解决方案,你可以严格使用正则表达式。而不是\ w +,您可以使用(?:td | span | div ...等等)来指定要清理的标签。