wake-up-neo.com

Wie lösche ich Leerzeichen eines Textes im Zweig?

Ich verwende die Template-Engine twig während ich symfony2 verwende. Ich versuche einen Weg zu finden, die Leerzeichen aus einem Text zu löschen.

Zum Beispiel, I play soll Iplay werden.

Ich habe es versucht:

21
KubiRoazhon

Lassen Sie uns zuerst sehen, was Sie versucht haben und warum das nicht funktioniert hat:

  • Spaceless: funktioniert nicht, weil "Verwenden Sie das Spaceless-Tag, um Leerzeichen zwischen HTML-Tags zu entfernen, nicht Leerzeichen innerhalb HTML - Tags oder Leerzeichen im Klartext "siehe raumlose Dokumentation .
  • Trimmen: funktioniert nicht, weil "der Trimmfilter Leerzeichen (oder andere Zeichen) vom Anfang und Ende eines Strings "siehe Schnittdokumentation .

Was Sie verwenden müssen, ist Folgendes:

{{ 'Some Text With Spaces'|replace({' ': ''}) }}

Dies wird Folgendes ausgeben:

SomeTextWithSpaces

Weitere Details in der Dokumentation .

42
dlondero

Versuche dies:

{{ "I plays"|replace({' ':''}) }}
3
Jayesh Chitroda

Sie können dazu auch einen eigenen Filter erstellen

Beispiel:

class MyExtensions extends \Twig_Extension
{
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('removeWhiteSpace', array($this, 'removeWhiteSpace'), array('is_safe' => array('html'))),
        );
    }

    public function removeWhiteSpace($string)
    {

       return preg_replace('/\s+/', '', $string);
    }
}

Deklarieren Sie es als Dienst:

myextensions.twig_extension:
      class: YourProject\YourBundle\Twig\MyExtensions
      public: false
      tags:
          - { name: twig.extension }

Und nenne es in deiner twig template:

{{ "Test remove white space"|removeWhiteSpace }}
3
DOZ

Bei mir hat das nicht funktioniert, wenn der String nicht unterbrechende Leerzeichen enthält:

stringWithNonBreakingWhitespace|replace({' ':''}

Um nicht bremsende Leerzeichen zu ersetzen, müssen Sie die Escape-Sequenz verwenden:

stringWithNonBreakingWhitespace|replace({'\xc2\xa0':''}
1
jbator