J'utilise le moteur de modèle twig tout en utilisant symfony2. J'essaie de trouver un moyen de supprimer les espaces blancs d'un texte.
Par exemple, I play
deviendra Iplay
.
J'ai essayé:
Voyons d'abord ce que vous avez essayé et pourquoi cela n'a pas fonctionné:
Ce que vous devez utiliser est le suivant:
{{ 'Some Text With Spaces'|replace({' ': ''}) }}
Cela produira:
SomeTextWithSpaces
Plus de détails dans la documentation .
Essaye ça:
{{ "I plays"|replace({' ':''}) }}
Vous pouvez également créer votre propre filtre pour ce faire
Exemple:
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);
}
}
Déclarez-le comme service:
myextensions.twig_extension:
class: YourProject\YourBundle\Twig\MyExtensions
public: false
tags:
- { name: twig.extension }
Et appelez-le dans le vôtre twig template:
{{ "Test remove white space"|removeWhiteSpace }}
Pour moi, cela ne fonctionnait pas lorsque la chaîne contient des espaces blancs insécables:
stringWithNonBreakingWhitespace|replace({' ':''}
Pour remplacer les espaces non freinés, vous devez utiliser la séquence d'échappement:
stringWithNonBreakingWhitespace|replace({'\xc2\xa0':''}