Znajdź podciąg w ciągu w TWIG

134

Chcę znaleźć podciąg łańcucha lub sprawdzić, czy nie ma takiego podciągu za pomocą Twig. Mówiąc słowami, potrzebuję odpowiednika „strstr” lub „strpos” w php. Wyszukałem w Google i przeszukałem ten problem w stackoverflow, ale nic nie znalazłem. Czy ktoś wie, jak rozwiązać ten problem?

user1440167
źródło
2
Nic nie znaleziono, naprawdę? Kiedy szukam w Google Find substring in the string in TWIG, dostaję pierwsze trafienie, które wygląda naprawdę dobrze. Nie sądzę, żeby było lepiej.
Pekka
Przed wysłaniem jakiegokolwiek pytania postępuj zgodnie z poradami wymaganymi do potwierdzenia . Pamiętaj, że tylko ty czegoś chcesz i zadajesz sobie pytanie, jak to jest zaprogramowane, nie kwalifikuje się jako pytanie programistyczne jako takie.
hakre
Pekka, dzięki za link, ale nie jest to dokładnie to, co znalazłem. strstr i strpos pozwalają znaleźć pozycje podciągu w łańcuchu lub zwrócić false, jeśli nie ma takiego podłańcucha. Nie jest podobnie z strpos.
user1440167
1
Jeśli nie znajdziesz tego, czego chcesz, zawsze możesz to zrobić sam .
Maerlyn

Odpowiedzi:

349

Właśnie wyszukałem dokumenty i znalazłem to :

Operator przechowujący : Operator in wykonuje test bezpieczeństwa. Zwraca prawdę, jeśli lewy operand znajduje się po prawej stronie:

{# returns true #}

{{ 1 in [1, 2, 3] }}

{{ 'cd' in 'abcde' }}
HamZa
źródło
1
Czy można tego użyć w instrukcji if?
TeaCupApp
3
Tak, rzeczywiście, możesz!
Flo Schild
5
Świetnie :) Użyłem go do ustalenia aktualnej trasy: <li class = "{% if 'gew_team_default_' in app.request.get ('_ route')%} active {% endif%}">
Tobias Oberrauch
@TobiasOberrauch tak zrobiłem; możesz też użyć app.request.pathinfojako porównania :)
neemzy
7
Aby uzyskać kompletność, składnia do testowania, czy podciąg nie jest obecny, to: {% if 'needle' not in haystack%}
geekbrit