模板过滤器修剪任何前导或尾随空格

Posted

技术标签:

【中文标题】模板过滤器修剪任何前导或尾随空格【英文标题】:template filter to trim any leading or trailing whitespace 【发布时间】:2012-05-08 19:52:12 【问题描述】:

django 中是否有一个模板过滤器可以从输入文本中修剪任何前导或尾随空格。

类似: var.example|trim

【问题讨论】:

【参考方案1】:

你可以自己做

from django import template
from django.template.defaultfilters import stringfilter

register = template.Library()

@register.filter
@stringfilter
def trim(value):
    return value.strip()

Documentation

【讨论】:

使用 var.example.strip 确实更简单,但是这里的这个解决方案也有它的用处。例如它允许你做% filter trim %% someothertag %% endfilter %,这是不可能的。【参考方案2】:

Django templates 允许您使用“.”访问方法和属性语法:

 var.example.strip 

在处理 html 时,您可以通过链接其他过滤器来扩展它,例如:

 var.example.strip|safe|removetags:"p img" 

这里我们首先删除所有的<p><img> 标签,然后告诉 Django 它可以安全地渲染剩下的内容,我们已经去掉了任何空白。

【讨论】:

不是 Django 的函数,而是 Python 的。它记录在这里:docs.python.org/2/library/stdtypes.html#str.strip。 Django 模板变量文档:docs.djangoproject.com/en/dev/ref/templates/language/#variables 一条评论 - removetags 过滤器从 django 1.10 开始被删除,所以要小心

以上是关于模板过滤器修剪任何前导或尾随空格的主要内容,如果未能解决你的问题,请参考以下文章

如何以标准方式修剪前导/尾随空格?

修剪前导和尾随空格

使用jQuery从textarea修剪前导/尾随空格?

可以将 Jackson 配置为从所有字符串属性中修剪前导/尾随空格吗?

Oracle trimspool 只有尾随空格(不是前导空格)

从字符串值中删除空格(前导和尾随)