成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

社交系統(tǒng)ThinkSNS+ 如何利用 Laravel 表單驗(yàn)證來驗(yàn)證用戶名的(我朝獨(dú)有需求,兩個(gè)字母

xiaodao / 2148人閱讀

摘要:言歸正傳,之所以寫繼篇,其實(shí)是來檢討的,上一次發(fā)表了如何計(jì)算字符顯示長度后,有網(wǎng)友幾經(jīng)測試后告知有問題。簡言之單字節(jié)字符占,多字節(jié)字符占字節(jié)。

什么是ThinkSNS+

ThinkSNS(簡稱TS)始于2008年,一款全平臺(tái)綜合性社交系統(tǒng),為國內(nèi)外大中小企業(yè)和創(chuàng)業(yè)者提供社會(huì)化軟件研發(fā)及技術(shù)解決方案,目前最新版本為ThinkSNS+。

后端框架使用laravel,每周和 laravel master 保持同步,而后臺(tái)和 html 5 則采用 vue 開發(fā)。語言特性方面,采用 php 7 的嚴(yán)格模式。

言歸正傳,之所以寫繼篇,其實(shí)是來檢討的,上一次發(fā)表了《ThinkSNS+?如何計(jì)算字符顯示長度》后,有網(wǎng)友幾經(jīng)測試后告知str_word_count 有問題。

根據(jù)ThinkSNS+ 的進(jìn)度安排,最近在研發(fā)支付功能,所以只能使用周末的時(shí)間做了一個(gè)兼容性更好的計(jì)算方法。

需求

重新說下需求:在我天朝 PM 經(jīng)常會(huì)提一種要求,就是例如一個(gè)用戶名最多輸入12個(gè)漢字,但是英文可以輸入24個(gè),混排也要滿足這個(gè)規(guī)則。

簡言之:單字節(jié)字符占0.5,多字節(jié)字符占1字節(jié)。

解決

閑下來的時(shí)候看了上篇文章中的算法,其實(shí)是沒什么問題的,只是兼容性不夠好,而且寫那個(gè)方法時(shí)想得過于復(fù)雜

也不知道當(dāng)時(shí)腦袋里面都想啥了

我們看上一篇中計(jì)算多字節(jié)的方法:

計(jì)算方法是剔除我們需求中允許的單字節(jié),然后通過 str word count 來獲取多字節(jié)的個(gè)數(shù),其實(shí)這個(gè)函數(shù)是可以獲取到的,但是部分系統(tǒng)下是不會(huì)成功的。還有一個(gè)函數(shù)就可以直接獲取多字節(jié)的個(gè)數(shù) mb strlen 修改后如下:

然后我們就可以正確完成這個(gè)需求了,最終實(shí)現(xiàn)的 Laravel 驗(yàn)證規(guī)則如下:

Laravel 通過上面的規(guī)則,可以在表單驗(yàn)證規(guī)則中直接驗(yàn)證,還支持傳入最小值和最大值。

上面的代碼都是來自于基于 Laravel 開發(fā)的開源程序 ThinkSNS+ 中,ThinkSNS+ 采用 apache-2.0 協(xié)議開源,我相信可以作為很多 Laravel 學(xué)習(xí)者的學(xué)習(xí)程序之一。

項(xiàng)目地址:GitHub: https://github.com/zhiyicx/th...(點(diǎn)擊star關(guān)注研發(fā)動(dòng)態(tài),感謝大家的支持)

ThinkSNS官網(wǎng):http://thinksns.com/

內(nèi)測申請(qǐng)方式

提供個(gè)人/企業(yè)聯(lián)系方式及認(rèn)證信息(實(shí)名ID/企業(yè)營業(yè)執(zhí)照照片或掃描件)及申請(qǐng)說明,發(fā)送郵件至[email protected]即可獲得內(nèi)測資格,申請(qǐng)從速。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/23111.html

相關(guān)文章

  • 簡析ThinkSNS+ 計(jì)算字符顯示長度方法!【社交系統(tǒng)研發(fā)日記】

    摘要:今天我們來聊一下可能很多人都會(huì)頭疼的東西顯示長度。需求是這樣的,在字符的顯示上,兩個(gè)英文單詞才占一個(gè)中文或者其他語言的顯示長度。好在在無意間發(fā)現(xiàn)一個(gè)奇怪的東西這個(gè)函數(shù)計(jì)算非英文單詞外是除了符號(hào)例如中文就是按照漢字個(gè)數(shù)算的,也是同理。 今天我們來聊一下可能很多人都會(huì)頭疼的東西:顯示長度。 需求是這樣的,在字符的顯示上,兩個(gè)英文單詞才占一個(gè)中文或者其他語言的顯示長度。如下: showImg...

    Miracle 評(píng)論0 收藏0
  • 如何Laravel 中 “規(guī)范” 開發(fā)驗(yàn)證碼發(fā)送功能【社交系統(tǒng)ThinkSNS研發(fā)日記十一】

    摘要:需求場景發(fā)送驗(yàn)證碼或者消息通知,可發(fā)送到手機(jī)或郵箱中。完成首先,在中的規(guī)范就是使用的消息通知,這里基于場景為驗(yàn)證碼。所以我們在驗(yàn)證碼模型中添加是完全符合通知的正確使用的。 順便發(fā)個(gè)小通知:7月15日ThinkSNS+開源版發(fā)布,同時(shí)非開源的APP也走出內(nèi)測階段,體驗(yàn)二維碼也全面發(fā)布體驗(yàn)。 什么是ThinkSNS ? ThinkSNS(簡稱TS),一款全平臺(tái)綜合性社交系統(tǒng),為國內(nèi)外大中小...

    Flands 評(píng)論0 收藏0
  • 如何做到 Laravel 配置可以網(wǎng)站后臺(tái)配置【社群系統(tǒng)ThinkSNS+研發(fā)日記四】

    摘要:本文分享下利用的達(dá)到網(wǎng)站后臺(tái)設(shè)置配置。當(dāng)加載配置執(zhí)行完成后就會(huì)執(zhí)行我注入的后置事件。官網(wǎng)內(nèi)測申請(qǐng)方式提供個(gè)人企業(yè)聯(lián)系方式及認(rèn)證信息實(shí)名企業(yè)營業(yè)執(zhí)照照片或掃描件及申請(qǐng)說明,發(fā)送郵件至將有機(jī)會(huì)獲得首批內(nèi)測資格,名額有限,申請(qǐng)從速。 本文分享下利用 Laravel 的 Bootstrapping 達(dá)到網(wǎng)站后臺(tái)設(shè)置 laravel 配置。 需求場景 首先,ThinkSNS+ 作為一個(gè)用戶可以使...

    alanoddsoff 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

xiaodao

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<