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?


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' }}

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.