How can I format a string in Twig as follows:
For example: img = 05myphoto-Car.jpg
I need to remove the numeric prefix and -
Better late than never...
Just register it (for me was on index.php
)
$app['twig']->addFilter('preg_replace', new Twig_Filter_Function(function ($subject, $pattern, $replacement) {
return preg_replace($pattern, $replacement, $subject);
}));
Then on the view: {{myVar|preg_replace('/\\d+/','')}}
Notice that all backslashes MUST be escaped, if not, they will be removed by Twig...
If you are willing to do it in the template, though it would be better as a controller/service, you can enable the preg_replace filter and strip numbers with something like preg_replace('/\d+/','')
and use the capitalize filter in addition.
This works for me just fine (Craft CMS):
{# Removes all characters other than numbers and + #}
{{ profile.phone|replace('/[^0-9+]/', '') }}