2016-11-02 1 views
0

Ich möchte einen Teil der Zeichenketten durch Sternchen in Twig ersetzen.Zweig Teil der Zeichenkette durch gewähltes Zeichen ersetzen

Zum Beispiel:

SomePartlyVisibleStringHere 

ich mit Sternchen jeden Buchstaben nach dem 4. in dieser Zeichenfolge ändern möchten, haben Ergebnis wie folgt aus:

Some********************* 

Ist es möglich, ohne die Definition neuer Zweig zu tun Helfer?

+0

Bitte markieren Sie eine Antwort als korrekt, wenn Sie Ihr Problem gelöst haben. – Rhono

Antwort

2

Sie könnten eine macro (eine Funktion in Twig) machen und sie aufrufen, wenn Sie dies tun möchten.

{% macro redact(topSecret) %} 
    {% set length = topSecret|length - 4 %} 
    {{ topSecret|slice(0, 3) }}{% for i in 0..length %}*{% endfor %} 
{% endmacro %} 

{# You have to import from _self if the macro is declared in the same file. #} 
{% import _self as sharpie %} 

{{ sharpie.redact('Top secret information') }} 
{# => Top******************* #} 

Beispiel: https://twigfiddle.com/aobt8s

1

Das ist für mich gearbeitet:

{% set string = 'SomePartlyVisibleStringHere' %} 
{% set starCount = string|length - 4 %} 
{{ string[:4] }}{% for i in 1..starCount %}*{% endfor %} 

Wenn Sie es zu tun haben, als wenn ich making a custom filter vorschlagen würde, dann können Sie einfach tun:

{% set string = 'SomePartlyVisibleStringHere' %} 
{{ string|customFilterName }} 
Verwandte Themen