摘要:言歸正傳,之所以寫繼篇,其實是來檢討的,上一次發表了如何計算字符顯示長度后,有網友幾經測試后告知有問題。簡言之單字節字符占,多字節字符占字節。
什么是ThinkSNS+
ThinkSNS(簡稱TS)始于2008年,一款全平臺綜合性社交系統,為國內外大中小企業和創業者提供社會化軟件研發及技術解決方案,目前最新版本為ThinkSNS+。
后端框架使用laravel,每周和 laravel master 保持同步,而后臺和 html 5 則采用 vue 開發。語言特性方面,采用 php 7 的嚴格模式。
言歸正傳,之所以寫繼篇,其實是來檢討的,上一次發表了《ThinkSNS+?如何計算字符顯示長度》后,有網友幾經測試后告知str_word_count 有問題。
根據ThinkSNS+ 的進度安排,最近在研發支付功能,所以只能使用周末的時間做了一個兼容性更好的計算方法。
需求
重新說下需求:在我天朝 PM 經常會提一種要求,就是例如一個用戶名最多輸入12個漢字,但是英文可以輸入24個,混排也要滿足這個規則。
簡言之:單字節字符占0.5,多字節字符占1字節。
解決
閑下來的時候看了上篇文章中的算法,其實是沒什么問題的,只是兼容性不夠好,而且寫那個方法時想得過于復雜
也不知道當時腦袋里面都想啥了
我們看上一篇中計算多字節的方法:
計算方法是剔除我們需求中允許的單字節,然后通過 str word count 來獲取多字節的個數,其實這個函數是可以獲取到的,但是部分系統下是不會成功的。還有一個函數就可以直接獲取多字節的個數 mb strlen 修改后如下:
然后我們就可以正確完成這個需求了,最終實現的 Laravel 驗證規則如下:
Laravel 通過上面的規則,可以在表單驗證規則中直接驗證,還支持傳入最小值和最大值。
上面的代碼都是來自于基于 Laravel 開發的開源程序 ThinkSNS+ 中,ThinkSNS+ 采用 apache-2.0 協議開源,我相信可以作為很多 Laravel 學習者的學習程序之一。
項目地址:GitHub: https://github.com/zhiyicx/th...(點擊star關注研發動態,感謝大家的支持)
ThinkSNS官網:http://thinksns.com/
內測申請方式
提供個人/企業聯系方式及認證信息(實名ID/企業營業執照照片或掃描件)及申請說明,發送郵件至lihecong@zhishisoft.com即可獲得內測資格,申請從速。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23111.html
摘要:今天我們來聊一下可能很多人都會頭疼的東西顯示長度。需求是這樣的,在字符的顯示上,兩個英文單詞才占一個中文或者其他語言的顯示長度。好在在無意間發現一個奇怪的東西這個函數計算非英文單詞外是除了符號例如中文就是按照漢字個數算的,也是同理。 今天我們來聊一下可能很多人都會頭疼的東西:顯示長度。 需求是這樣的,在字符的顯示上,兩個英文單詞才占一個中文或者其他語言的顯示長度。如下: showImg...
摘要:需求場景發送驗證碼或者消息通知,可發送到手機或郵箱中。完成首先,在中的規范就是使用的消息通知,這里基于場景為驗證碼。所以我們在驗證碼模型中添加是完全符合通知的正確使用的。 順便發個小通知:7月15日ThinkSNS+開源版發布,同時非開源的APP也走出內測階段,體驗二維碼也全面發布體驗。 什么是ThinkSNS ? ThinkSNS(簡稱TS),一款全平臺綜合性社交系統,為國內外大中小...
摘要:本文分享下利用的達到網站后臺設置配置。當加載配置執行完成后就會執行我注入的后置事件。官網內測申請方式提供個人企業聯系方式及認證信息實名企業營業執照照片或掃描件及申請說明,發送郵件至將有機會獲得首批內測資格,名額有限,申請從速。 本文分享下利用 Laravel 的 Bootstrapping 達到網站后臺設置 laravel 配置。 需求場景 首先,ThinkSNS+ 作為一個用戶可以使...
閱讀 3094·2021-08-03 14:05
閱讀 2140·2019-08-29 15:35
閱讀 678·2019-08-29 13:30
閱讀 3169·2019-08-29 13:20
閱讀 2531·2019-08-23 18:15
閱讀 1797·2019-08-23 14:57
閱讀 2213·2019-08-23 13:57
閱讀 1310·2019-08-23 12:10