Как удалить пробелы текста в веточке?

Я использую движок шаблонов twig при использовании symfony2. Я пытаюсь найти способ удалить пробелы из текста.

Например, I play Iplay.

Я пробовал:

Ответ 1

Сначала давайте посмотрим, что вы пытались и почему это не сработало:

  • Spaceless: не работает, потому что "Используйте пробел для удаления пробелов между тегами HTML, а не пробелов внутри тегов HTML или пробелов в простом тексте ", смотрите документацию без пробелов.
  • Trim: не работает, потому что "Фильтр отделки удаляет пробелы (или другие символы) с начала и конца строки", см. Документацию по отделке.

Вам нужно использовать следующее:

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

Это выведет:

SomeTextWithSpaces

Более подробно в документации.

Ответ 2

Попробуй это:

{{ "I plays"|replace({' ':''}) }}

Ответ 3

Вы также можете создать свой собственный фильтр для этого.

Пример :

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);
    }
}

Объявите его как услугу:

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

И назовите это в своем шаблоне ветки:

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

Ответ 4

Для меня это не работает, когда строка содержит неразрывные пробелы:

stringWithNonBreakingWhitespace|replace({' ':''}

Чтобы заменить не тормозящий пробел, вы должны использовать escape-последовательность:

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