【问题标题】:How to permanently remove html tags from django template (filter)?如何从 django 模板(过滤器)中永久删除 html 标签?
【发布时间】:2011-10-17 09:33:54
【问题描述】:

我尝试使用“striptags”和“removetags:”,但效果不佳。文字是这样的:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      在截断文本之前去掉标签,或者使用 HTML 感知 truncatewords_html。如果不这样做,您就是在对损坏的数据进行操作。

      【讨论】:

        猜你喜欢
        • 2011-09-30
        • 2012-10-11
        • 2018-02-11
        • 2013-03-16
        • 2020-02-16
        • 1970-01-01
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多