symfony 如何在twig中删除文本中白色空格?

46qrfjad  于 2023-08-06  发布在  其他
关注(0)|答案(5)|浏览(102)

我在使用symfony2时使用了twig模板引擎。我在找一种方法来删除文本中的白色。
例如,I play应变为Iplay
我试过了

qyuhtwio

qyuhtwio1#

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

  • Spaceless:不起作用,因为“使用spaceless标记删除HTML标记之间的空格不是HTML标记内的空格或纯文本中的空格”请参阅spaceless文档。
  • Trim:不起作用,因为“Trim过滤器从字符串的开头结尾去除空格(或其他字符)”请参阅trim文档。

您需要使用的是以下内容:

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

字符串
这将输出:

SomeTextWithSpaces


文档中有更多详细信息。

suzh9iv8

suzh9iv82#

试试这个:

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

字符串

vddsk6oq

vddsk6oq3#

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

范例:

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 }


并在你的twig模板中调用它:

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

qnzebej0

qnzebej04#

对我来说,当字符串包含非中断空格时,这不起作用:

stringWithNonBreakingWhitespace|replace({' ':''}

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

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

owfi6suc

owfi6suc5#

使用无空格过滤器删除HTML标记之间的空格,而不是HTML标记内的空格或纯文本中的空格:

{{ "<div>
        <strong>foo</strong>
    </div>"|spaceless }}

字符串
您可以将spaceless与apply标记结合使用,以在大量HTML上应用转换:

{% apply spaceless %}
    <div>
        <strong>foo</strong>
    </div>
{% endapply %}

相关问题