树枝模板中的“开头为”

2022-08-30 11:55:09

我有一个树枝模板,我想测试一个项目是否以某个值开头

{% if item.ContentTypeId == '0x0120' %}
    <td><a href='?parentId={{ item.Id }}'>{{ item.BaseName }}</a><br /></td>
{% else %}
    <td><a href='?{{ item.UrlPrefix }}'>{{ item.LinkFilename }}</a></td>
{% endif %}

0x0120可以看起来像这样,也可以更复杂,如0x0120D52000D430D2B0D8D6F4BBB16123680E4F78700654036413B65C740B168E780DA0FB4BX。我唯一想做的就是确保它从0x0120开始。

理想的解决方案是通过使用正则表达式来解决这个问题,但我不知道Twig是否支持这一点?

谢谢


答案 1

您现在可以直接在Twig中执行此操作:

{% if 'World' starts with 'F' %}
{% endif %}

还支持“结尾为”:

{% if 'Hello' ends with 'n' %}
{% endif %}

其他方便的关键字也存在:

复杂字符串比较:

{% if phone matches '{^[\\d\\.]+$}' %} {% endif %}

(注意:双反斜杠通过 twig 转换为一个反斜杠)

字符串包含:

{{ 'cd' in 'abcde' }}
{{ 1 in [1, 2, 3] }}

在此处查看更多信息: http://twig.sensiolabs.org/doc/templates.html#comparisons


答案 2

是的,Twig在比较中支持正则表达式:http://twig.sensiolabs.org/doc/templates.html#comparisons

在你的情况下,它将是:

{% if item.ContentTypeId matches '/^0x0120.*/' %}
  ...
{% else %}
  ...
{% endif %}

推荐