我遇到这样一种情况,我需要确定 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/