Symfony twig
如果只跟随小写字母,如何在大写字母后面添加空格。
{{ 'IWantHTML'|humanize }} //displays 'I want h t m l'. // it should be 'I want HTML'.
另一件事是它使第一个字母后面的所有小写字母。 e.x。
{{ 'IWantHTML'|humanize }} // should be 'I Want HTML'.
{{ 'i_want_html'|humanize}} // should be 'I want html'.
{{ 'CustomerPickSale2'|humanize}} // should be 'Customer Pick Sale2'.
答案 0 :(得分:0)
这是人性化过滤器的片段:
function humanize($str) {
$str = trim(strtolower($str));
$str = preg_replace('/[^a-z0-9\s+]/', '', $str);
$str = preg_replace('/\s+/', ' ', $str);
$str = explode(' ', $str);
$str = array_map('ucwords', $str);
return implode(' ', $str);
}
你可以看到它没有做你想要的。所以你必须实现自己的过滤器如何Write Twig Extentions以及如何创建Custom Twig Fitler
答案 1 :(得分:0)
我建议你Twig Extensions
答案 2 :(得分:0)
在自定义树枝过滤器下面工作!!
new Twig_SimpleFilter('readable', array($this, 'readableFormat'))
/**
* @param $string
* @return mixed
*/
public function readableFormat($string)
{
$match_filter = array(
'/(?<!\ )[A-Z][a-z]+/',
'/(?<!\ )[A-Z][A-Z]+/',
);
$Words = preg_replace($match_filter, ' $0', trim($string));
return str_replace('_', ' ', $Words);
}
{{ 'IWantHTML'|readable }} // I Want HTML
{{ 'i_want_html'|readable|ucfirst }} // I want html
{{ 'CustomerPickSale2'|readable|ucfirst }} // Customer Pick Sale2