Twig:Twig 中带有正则表达式的 Slug?

Twig: Slug with Regex in Twig?

我想对一个值进行 slugify,例如 "slugName = Spain & Italy"

当我在 TWIG {{ slugName|slugify }} 中制作 slug 时,结果是 Spain_amp_Italy

是否可以在 Twig 中设置一个正则表达式,这样我的“&”就可以翻译成 "and"? 谢谢

您可以连接多个过滤器,并使用一个简单的函数 replace():

{{ slugName| replace({'&': 'and'}) | slugify }}

您可以创建一个自定义函数来执行此操作

<?php
$twig->addFilter(new Twig_Filter('ampersand_to_and', function( $string = '' ) {

    return preg_replace('/(&amp;|&)/m', 'and', $string );
}));

然后你可以按如下方式使用它:

<p>{{ 'Spain & Italy'|ampersand_to_and }}</p>
<p>{{ 'Spain &amp; Italy'|ampersand_to_and }}</p>