Php &引用;以“开始”;在细枝模板中
我有一个细枝模板,我想测试一个项目是否以某个值开始Php &引用;以“开始”;在细枝模板中,php,regex,twig,comparison,Php,Regex,Twig,Comparison,我有一个细枝模板,我想测试一个项目是否以某个值开始 {% if item.ContentTypeId == '0x0120' %} <td><a href='?parentId={{ item.Id }}'>{{ item.BaseName }}</a><br /></td> {% else %} <td><a href='?{{ item.UrlPrefix }}'>{{ item.LinkFi
{% 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 %}
{%if item.ContentTypeId==“0x0120%”
{%else%}
{%endif%}
0x0120可以看起来像这样,也可以像0x0120D52000D430D2B0D8DD6F4BBB16123680E4F78700654036413B65C740B168E780DA0FB4BX这样更复杂。我想做的唯一一件事是确保它从0x0120开始
理想的解决方案是使用regex解决这个问题,但我不知道Twig是否支持这个
谢谢您可以随时制作自己的过滤器来执行必要的比较 根据: 当由Twig调用时,PHP callable接收过滤器的左侧(在管道|之前)作为第一个参数,并接收传递给过滤器的额外参数(在括号()内)作为额外参数 这是一个修改过的例子 创建过滤器就像将名称与PHP关联一样简单 可调用: 然后,将过滤器添加到细枝环境: 下面是如何在模板中使用它: 我不是一个PHP爱好者,所以我不知道PHP是如何处理正则表达式的,但是如果
$longString
以$startsWith
开头,上面的匿名函数将返回true。我相信您会发现实现起来很简单。您可以使用过滤器。简单地做:
{% if item.ContentTypeId[:6] == '0x0120' %}
{% endif %}
是的,Twig支持比较中的正则表达式: 在您的情况下,它将是:
{% if item.ContentTypeId matches '/^0x0120.*/' %}
...
{% else %}
...
{% endif %}
您现在可以直接在Twig中执行此操作:
{% if 'World' starts with 'F' %}
{% endif %}
还支持“结束于”:
{% if 'Hello' ends with 'n' %}
{% endif %}
还有其他方便的关键字: 复杂字符串比较:
{% if phone matches '{^[\\d\\.]+$}' %} {% endif %}
(注意:双反斜杠由细枝转换为一个反斜杠)
字符串包含:
{{ 'cd' in 'abcde' }}
{{ 1 in [1, 2, 3] }}
请参阅此处的更多信息:酷!有没有办法获取与正则表达式匹配的所有数组元素?在没有{%for array%}元素的情况下,现在可以使用
以开始,请参见下面的答案。
{% if 'Hello' ends with 'n' %}
{% endif %}
{% if phone matches '{^[\\d\\.]+$}' %} {% endif %}
{{ 'cd' in 'abcde' }}
{{ 1 in [1, 2, 3] }}