Twig中的str_replace

61

我想在我的twig模板中进行一个简单的str_replace操作。我对twig不太熟悉,可能需要添加新的过滤器或类似的东西,或者使用现有的过滤器。我该如何做?在哪里可以找到可用过滤器列表?


你想要做什么?Twig已经内置了一些过滤器和HTML转义功能:http://www.twig-project.org/doc/templates.html - CamelBlues
5个回答

78

使用此代码将 | 替换为 - 并将 , 替换为 .

{{age|replace({'|': "-", "," : "."})}}

例如输入 31|60,,输出为 31-60.


4
谢谢,这在当前的文档中不是很明显。 - Prinsig
2
@Prinsig 确实。从文档中我认为你只能替换占位符。 - ohvitorino

66

替换存储在twig变量中的字符串:

{% set twig_content_variable= 'Testing to replace content'%}
{% set replace_value_var= 'Testing' %}
{% set replace_with_value_var = 'Testing complete' %} 

{{ twig_content_variable|replace({ (replace_value_var): replace_with_value_var }) }}

12
谢谢!文档中缺少 replace_value_var 周围的括号。 - Nate Cook
1
如何去除空格? - Guru
@Guru 像这样 {{ "苹果和胡萝卜"|replace(' ', '') }} - Microcipcip
1
文档中根本没有提到括号,因为你不需要它们。 - Capsule
@Capsule 你可能会这样想,但出于某种奇怪的原因,如果没有它们,它就无法替换。它们不必是像'some'这样的显式字符串键,但必须放在变量周围(可能是一些内部字符串=>键解析)。 - jave.web

10

当我们在单引号内添加单引号时,则会遇到错误。

解决方法:

{{description|replace({"\'": "&#039"})|raw }}

9

此外,这对于清除(utf-8)语言字符可能很有用...

{{some_string|replace({'ć':'c','č':'c','š':'s','ž':'z','đ':'d','Ć':'C','Č':'C','Š':'S','Ž':'Z','Đ':'D'})}}

4
这段代码的意思是将$text从UTF-8编码转换成ISO-8859-1编码,如果有某些字符无法直接转换,则进行替换。 - umpirsky
3
嗯,我认为Twig的代码大概是这样的{{ data|convert_encoding('UTF-8', '你想要的编码格式') }},但我不100%确定。 - Denis Solakovic
1
是的,我的是 PHP。 :) - umpirsky

0
使用此代码将 . 替换为 "",将 - 替换为 "",并将 : 替换为 _ :
  • "" = 什么也没有或NULL

    {{signature3.user.username|replace({'.': "", "-" : "","_":""})}}
    

输入najim_el-guennouni,输出为najimelguennouni。


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