在使用symfony2时,我使用的是twitch模板引擎。我正在想办法删除文本中的空白。
例如,I play
应变为Iplay
。
我试过:
- 无空间
- Trim
首先让我们看看您尝试了什么以及为什么不起作用:
- 无空格:不起作用,因为"使用无空格标记来删除HTML标记之间的空白,而不是HTML标记内的空白或纯文本中的空白"请参阅无空格文档
- Trim:不起作用,因为"Trim过滤器从字符串的开始和结束中删除空白(或其他字符)"请参阅Trim文档
您需要使用以下内容:
{{ 'Some Text With Spaces'|replace({' ': ''}) }}
这将输出:
SomeTextWithSpaces
更多详细信息,请参阅文档。
试试这个:
{{ "I plays"|replace({' ':''}) }}
您也可以创建自己的过滤器来完成
示例:
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 }}
对我来说,当字符串包含不间断的空白时,这不起作用:
stringWithNonBreakingWhitespace|replace({' ':''}
要替换非制动空白,必须使用转义序列:
stringWithNonBreakingWhitespace|replace({''xc2'xa0':''}
使用无空格过滤器来删除HTML标记之间的空白,而不是HTML标记中的空白或纯文本中的空白:
{{ "<div>
<strong>foo</strong>
</div>"|spaceless }}
您可以将spaceless与apply标记结合起来,在大量HTML:上应用转换
{% apply spaceless %}
<div>
<strong>foo</strong>
</div>
{% endapply %}