如何删除twig中文本的空格?

问题描述 投票:0回答:6

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

例如,

I play
应变为
Iplay

我已经尝试过:

php symfony twig
6个回答
75
投票

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

  • Spaceless:不起作用,因为“使用无空间标签删除HTML标签之间的空白,不是HTML标签内的空白或纯文本中的空白”,请参阅无空间文档 修剪:不起作用,因为“修剪过滤器从字符串的
  • beginning
  • end中去除空格(或其他字符)”,请参阅trim文档
  • 您需要使用的是以下内容:

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

这将输出:

SomeTextWithSpaces

更多详细信息请参阅
文档


8
投票

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



4
投票

示例:

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



1
投票

stringWithNonBreakingWhitespace|replace({' ':''}

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

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



0
投票

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

您可以将 spaceless 与 apply 标签结合起来,以将转换应用于大量 HTML:

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



0
投票

{% if primary -%} <div class="visually-hidden">{{ 'Primary tabs'|t }}</div> <ul>{{ primary }}</ul> {%- endif %} {%- if secondary -%} <div class="visually-hidden">{{ 'Secondary tabs'|t }}</div> <ul>{{ secondary }}</ul> {%- endif %}

在 {%- if -%} 和 {%- endif -%} 标签内添加“-”可以消除多余的空格。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.