使用 Laravel 宏生成字符串首字母缩略词
发布于 作者: Paul Redmond
用于 Laravel 的 Str Acronym 包提供了一个宏,用于使用 Str 助手从字符串生成首字母缩略词,并支持 Stringable 类
use Illuminate\Support\Str; Str::acronym('Laravel News'); // LNStr::acronym('Amazon Web Services'); // AWS
如果您更喜欢使用 Stringable
,您可以按如下方式使用此宏
Str::of('Laravel News')->headline()->acronym(); // LN
最后,它还支持一个分隔符字符,您可以在首字母缩略词中的每个字母之间使用
Str::acronym('Eric Barnes', '.'); // E.B.Str::acronym('Eric L. Barnes', '.'); // E.L.B.
这个小小的宏可以帮助根据姓名和姓氏生成基于文本的聊天头像,例如。
如果您想直接使用宏,以下是在撰写本文时它的完整代码
Str::macro('acronym', function ($string, $delimiter = '') { if (empty($string)) { return ''; } $acronym = ''; foreach (preg_split('/[^\p{L}]+/u', $string) as $word) { if(!empty($word)){ $first_letter = mb_substr($word, 0, 1); $acronym .= $first_letter . $delimiter; } } return $acronym;}); Stringable::macro('acronym', function (string $delimiter = '') { return new Stringable (Str::acronym($this->value, $delimiter));});
您可以在 GitHub 上了解更多关于此包的信息,获取完整的安装说明,并查看 源代码。