Как удалить пробелы текста в веточке?
Я использую движок шаблонов 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':''}