我想知道是否存在一个检查一个长度的树枝函数,然后将字符串限制为所需的长度或用空格填充它。
我知道如何使用str_pad和substr并编写一个新的Twig过滤器。但我想知道是否有人可以使用exignts twig filter / functions
来做到这一点例如(字符串作为商品的var名称)
{{ "123123123123123"|filter(5) }}
返回“12312”
{{ "12"|filter(5) }}
返回“12_____”(以_作为空格)
答案 0 :(得分:5)
您可以将format
过滤器与padding&精确修饰符:
此示例最多可填充10个字符或将字符串修剪为10个字符:
Default, left padding:
Cuts to 10...
Arbitrary character: {{ "%'_10.10s"|format("123123123123123") }}
Space-Padded: {{ "% 10.10s"|format("123123123123123") }}
Zero-Padded: {{ "%010.10s"|format("123123123123123") }}
... or expands to 10:
Arbitrary character: {{ "%'_10.10s"|format("123") }}
Space-Padded: {{ "% 10.10s"|format("123") }}
Zero-Padded: {{ "%'010.10s"|format("123") }}
Right padding:
Cuts to 10...
Arbitrary character: {{ "%'_-10.10s"|format("123123123123123") }}
Space-Padded: {{ "% -10.10s"|format("123123123123123") }}
Zero-Padded: {{ "%0-10.10s"|format("123123123123123") }}
... or expands to 10:
Arbitrary character: {{ "%'_-10.10s"|format("123") }}
Space-Padded: {{ "% -10.10s"|format("123") }}
Zero-Padded: {{ "%'-010.10s"|format("123") }}
输出:
Default, left padding:
Cuts to 10...
Arbitrary character: 1231231231
Space-Padded: 1231231231
Zero-Padded: 1231231231
... or expands to 10:
Arbitrary character: _______123
Space-Padded: 123
Zero-Padded: 0000000123
Right padding:
Cuts to 10...
Arbitrary character: 1231231231
Space-Padded: 1231231231
Zero-Padded: 1231231231
... or expands to 10:
Arbitrary character: 123_______
Space-Padded: 123
Zero-Padded: 0000000123
请注意,即使添加了对齐修饰符,0-padding也只能从左侧开始
修改:TwigFiddle
答案 1 :(得分:2)
要获得Twig中的计数,您可以尝试这样做:
{% if users|length > 100 %}
{{ users | truncate(50, true) }}
{% endif %}
其中users是变量。在上述场景中,如果用户长度大于100,则将其限制为50个字符。
如果您只想在一行中执行此操作,请尝试使用以下三元组:
{{ (users|length > 100) ? truncate(50, true) : users }}
注意:为了使用truncate,可能需要激活Text扩展名。您可以激活它,如下所示:
# app/config/config.yml
services:
twig.extension.text:
class: Twig_Extensions_Extension_Text
tags:
- { name: twig.extension }
答案 2 :(得分:2)
这是"标准"的答案。 Twig按要求运行:
{% for i in 0..4 %}
{{- var|slice(i,1)
? var|slice(i,1)
: '-' -}}
{% endfor %}
您可以根据需要将'-'
替换为空格' '
。
这是一个显示它正常工作的Twigfiddle。我有两个样本来看看差异。 https://twigfiddle.com/ioxeh0
确保使用三元组中的减号,删除附加空格。享受!