树枝中的 preg_match
Posted
技术标签:
【中文标题】树枝中的 preg_match【英文标题】:preg_match in twig 【发布时间】:2013-02-08 09:36:39 【问题描述】:首先,我知道逻辑应该在控制器中而不是在视图中,我保持这种方式。
但在这种特殊情况下,我需要在三元运算中使用 preg_match 来设置 div 的 css 类。
例子:
% for list in lists %
<div class=" (preg_match(list.a, b))>0 ? something : else "...>...</div>
% endfor %
如何在 twig 中实现 (preg_match(list.a,b))>0 条件?
提前致谢
【问题讨论】:
***.com/questions/7096546/… 【参考方案1】:你不能直接使用preg_match()
,但是有办法实现它:
如果你的list
是一个实体,添加一个方法matches()
: (list.matches(b)) ? something : else
您可以创建一个自定义 Twig 扩展函数,该函数在内部使用 preg_match()
http://symfony.com/doc/master/cookbook/templating/twig_extension.html
【讨论】:
【参考方案2】:对于那些从 Google 搜索结果来到这里的人(比如我)。
containment operator 允许您执行以下操作:
'cd' in 'abcde' # returns true #
【讨论】:
【参考方案3】:根据 Serge 的评论展开,是正确答案。
在我的示例中,我的字符串是“Message Taken - 12456756”。然后我可以使用 |split 将其转换为数组并使用 |replace 来消除空白。
% set mt = 'Message Taken' in d.note %
% if mt == true %
#.. you can then do something that is true#
% set mt_array = d.note|split('-') %
mt_array[0] | mt_array[1]|replace(' ' : '')
% endif %
这将输出我的字符串,但我现在控制两个部分而不是 1。
【讨论】:
以上是关于树枝中的 preg_match的主要内容,如果未能解决你的问题,请参考以下文章