用過Laravel的朋友都知道,Laravel內建的字串處理函數有了解,IlluminateSupportStr類別。
Laravel 7 現在基於這些函數提供了一個更物件導向的、更流暢的字串操作庫。你可以使用String::of 建立一個IlluminateSupportStringable 對象,然後基於該物件提供的方法以鍊式的操作對字串進行處理:
這裡我們先看一下官方的實例:
return (string) Str::of(' Laravel Framework 6.x ') ->trim() ->replace('6.x', '7.x') ->slug();
上面的程式碼,來自官網發行說明,我們很容易看到,每個方法都是幹嘛的。
首先第一步將字串 Laravel Framework 6.x 使用 Str::of() 方法進行包裹,之後我們就可以使用 Laravel 7 為我們提供的各種流暢的操作方法。
例如 trim() 去除前後空格。 replace() 進行替換,slug() 將字串變成slug 的形式
上面的程式碼實際運作結果就是:
laravel-framework-7x
上面的方法是不是用起來很簡單?
接下來我們介紹幾個常用的方法。
before() 方法
傳回字串中給定值之前的所有內容:
Str::of('my website is www.wjcms.net')->before('is'); // 'my website '
同理有before(),就會有after()
after() 方法
傳回字串中給定值之後的所有內容。如果字串中不存在該值,則將傳回整個字串:
Str::of('my website is www.wjcms.net')->after('is'); // ' www.wjcms.net'
append() 方法
將給定值附加到字串:
Str::of('vue')->append(' cli'); // 'vue cli'
lower () 方法
將字串轉換為小寫:
Str::of('LARAVEL FRAMEWORK')->lower(); // 'laravel framework'
upper() 方法
將給定的字串轉換為大寫:
Str::of('laravel')->upper(); // LARAVEL
title() 方法
將給定的字串轉換為「首字母大寫」:
Str::of('my website is www.wjcms.net')->title(); // 'My Website Is Www.wjcms.net'
substr() 方法
將給定的start 和length 參數指定的字串部分:(從第幾個字元開始截取,截取多少位元)
Str::of('Laravel Framework')->substr(8); // 'Framework'
Str::of('Laravel Framework')->substr(8, 6); // 'Framew'
ucfirst() 方法
將給定的字串首字母大寫:
Str::of('my website is www.wjcms.net')->ucfirst(); // 'My website is www.wjcms.net'
words() 方法
限製字串中的單字數:
Str::of('my website is www.wjcms.net')->words(3, ' ...'); // 'my website is ...'
length() 方法
傳回字串的長度:
Str::of('Laravel framework')->length(); // 17
ok,以上介紹了一些常用的方法,其實都是文檔上的操作,我只不過那不過來操作演示一遍,更多的用法,請直接查看文檔
下面是所有的方法集合