60

I want to do a simple str_replace in my twig template. I'm new to twig and probably I need to add new filter or sth like that or to use existing. How can I do this? Where can I find list of filters available?

umpirsky
  • 9,902
  • 13
  • 71
  • 96
  • What exactly do you want to do? There are a number of filters and some HTML escaping built in to twig already: http://www.twig-project.org/doc/templates.html – CamelBlues Feb 22 '11 at 14:34

5 Answers5

75

Use this to replace | with - and replace , width .:

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

Example input 31|60, comes out as 31-60.

Thomas Landauer
  • 7,857
  • 10
  • 47
  • 99
websky
  • 3,047
  • 1
  • 33
  • 31
65

To replace a string which is stored in twig variables:

{% 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 }) }}
Thomas Landauer
  • 7,857
  • 10
  • 47
  • 99
M Khalid Junaid
  • 63,861
  • 10
  • 90
  • 118
10

When we add a single quote inside a single quote then we face the error.

solution for that:-

{{description|replace({"\'": "&#039"})|raw }}
Ash
  • 165
  • 2
  • 3
9

Also, this could be useful for getting rid of (utf-8) language chars...

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

Use this to replace . with "" , replace - width "" and : replace _ width "" :

  • "" = nothing or NULL

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

input najim_el-guennouni, out as najimelguennouni.