如何删除树枝中文本的空格?

时间:2016-07-27 08:09:28

标签: php symfony twig

我在使用symfony2时使用了twig模板引擎。我正试图找到一种从文本中删除空格的方法。

例如,I play将成为Iplay

我试过了:

4 个答案:

答案 0 :(得分:38)

首先让我们看看你尝试了什么以及为什么不起作用:

  • 无空间:无法正常工作,因为“使用无空格标记删除 HTML标记之间的空格 HTML标记中的空格或纯文本中的空格“见spaceless documentation
  • 修剪:无法正常工作,因为“修剪过滤器会从字符串的开头结束中删除空白(或其他字符)”,请参阅trim documentation

您需要使用的内容如下:

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

这将输出:

SomeTextWithSpaces

documentation

中的更多详细信息

答案 1 :(得分:3)

试试这个:

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

答案 2 :(得分:2)

您也可以创建自己的过滤器来执行此操作

示例:

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

答案 3 :(得分:0)

对我来说,当字符串包含不间断空格时,这是行不通的:

stringWithNonBreakingWhitespace|replace({' ':''}

要替换非制动空格,您必须使用转义序列:

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