php - 识别 Twig 变量中的空白

标签 php symfony twig

我遇到这样一种情况,我需要确定 Twig 模板中的变量中是否有空格,并略微不同地对待它。

此应用程序中的名字与中间名首字母一起存储在名字字段中;它们没有单独存储。

我想要实现的是:通常大多数名字都是一个词,例如“约翰”或“苏珊”或类似的名字。在其中一些情况下,我们会遇到中间名首字母存储在此变量中的情况(例如 John J)

按照标准的引用标准,我们需要能够像这样列出项目:

{{ surname }}, {{ given_name }}, ed.

这样它就会显示为“Smith, John, ed.”。这通常没问题,但在某些情况下,如果有中间名首字母,它会显示为“Smith, John J, ed”。 - 这是不正确的。我不能在给定名称后添加句号,因为“Smith, John., ed”是不正确的引用标准。

我想要做的是确定 given_name 是否包含一个空格,后跟一个字母,然后以不同的方式对其进行格式化。

像这样:

{% if given_name [has a blank space preceding a single letter] %}
{{ given_name }}., ed.
{% else %}
{{ given_name }}, ed.
{% endif %}

有没有办法在 twig 中使用正则表达式来做到这一点,还是有其他方法?

提前致谢

最佳答案

我们可以翻译您的要求:

has a blank space preceding a single letter

在这个小算法中:

{% set given_name = 'John J' %}

{% set given_name_elems = given_name|split(' ') %}

{% set size = given_name_elems|length %}


{% if size >0 and given_name_elems[size-1]|length == 1%}
   { given_name }}., ed.
{%else%}
   {{ given_name }}, ed.
{%endif%}

我建议你把这个逻辑封装在一个函数或宏中。

您可以在 this working example 中尝试一下

关于php - 识别 Twig 变量中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43240115/

相关文章:

symfony - Symfony2长文本翻译

php - 数据表全局搜索偶尔抛出 ajax 错误

sqlite - 存储我的服务 sqlite 数据库文件的最佳位置?

javascript - Symfony2 Jquery 没有做任何事情

php - Symfony 从输出序列化实体转义反斜杠

symfony - Doctrine 2.5 : Unrecognized field (but only in Symfony's prod mode)

symfony - 关闭Symfony 2/ Twig 中的转义

在 Windows 上安装 PHP

javascript - 保护 PHP 脚本 - Shopify

php - 访问 Zend Framework 2 中的模块配置