Laravel 9 保姆級(jí)視頻教程,想學(xué)不會(huì)都難!進(jìn)入學(xué)習(xí)
Laravel 的驗(yàn)證系統(tǒng)有 60多個(gè)驗(yàn)證規(guī)則可用,但是如果你需要其他的功能怎么辦?你可以 輕松創(chuàng)建自己的驗(yàn)證規(guī)則, 也可以使用互聯(lián)網(wǎng)上已有的驗(yàn)證規(guī)則。讓我們來(lái)看看。
來(lái)自 Alphametric 的22條規(guī)則
首先,我們從 Alphametric 的高級(jí)開(kāi)發(fā)人員 Matt Kingshott 的一系列文章開(kāi)始,他在 Medium 寫(xiě)了許多的帖子,并將所有規(guī)則添加到 Github存儲(chǔ)庫(kù) 中。以下是可用的規(guī)則列表:
-
StrongPassword: 檢查是否是 “強(qiáng)” 類型的密碼
-
TelephoneNumber: 檢查是否是有效的電話號(hào)碼
-
RecordOwner: 要求經(jīng)過(guò)身份驗(yàn)證的用戶 ID 與給定數(shù)據(jù)庫(kù)記錄中的user_id 列匹配,例如: 所有者:帖子,id
-
MonetaryFigure: 檢查貨幣數(shù)字,例如: $ 72.33
-
DisposableEmail: 檢查郵件地址是不是一次性的郵件地址
-
DoesNotExist: 檢查給定的值是否存在數(shù)據(jù)庫(kù) 表/列 中
-
Decimal: 檢查是否具是有正確格式的十進(jìn)制
-
EncodedImage: 檢查值是否是給定 mime 類型的 base64 編碼圖像
-
LocationCoordinates: 檢查是不是以逗號(hào)分隔開(kāi)的一組經(jīng)緯度坐標(biāo)
-
FileExists: 檢查值是不是一個(gè)已有的文件路徑
-
Equals: 檢查值是否等于另外一個(gè)值
-
MacAddress: 檢查值是不是一個(gè)有效的 MAC 地址
-
ISBN: 檢查值是不是有效的ISBN-10或ISBN-13數(shù)字
-
EndsWith: 檢查值是不是以給定的字符串結(jié)尾
-
EvenNumber: 檢查值是不是偶數(shù)(小數(shù)先使用 intval 進(jìn)行類型強(qiáng)制轉(zhuǎn)換)
-
OddNumber: 檢查值是不是奇數(shù)(小數(shù)先使用 intval 進(jìn)行類型強(qiáng)制轉(zhuǎn)換)
-
Lowercase: 檢查值是不是小寫(xiě)的字符串
-
Uppercase: 檢查值是不是大寫(xiě)的字符串
-
Titlecase: 檢查值是不是標(biāo)題字符串
-
Domain: 檢查值是不是一個(gè)合法域名 google.com, www.google.com
-
CitizenIdentification:檢查值是不是合法的 美/法/英 國(guó)公民的身份證號(hào)
-
WithoutWhitespace: 檢查值是否包含空格字符
來(lái)自 Scott Robinson 的 8 條規(guī)則
Scott Robinson 制定了另一套好的規(guī)則,他還為此創(chuàng)建了一個(gè)專門的網(wǎng)站 laravel-validation-rules.github.io。它有以下規(guī)則:
-
Colour: 值是不是顏色,目前僅支持十六進(jìn)制代碼。
-
Country Codes: 驗(yàn)證 2&3 個(gè)字符的 國(guó)家/地區(qū) 代碼。
-
Credit Card: 驗(yàn)證值是不是合法的信用卡號(hào)及有效期和是否有效。
-
IP: 驗(yàn)證值 IP 地址是公共的還是私有的。支持 IPV4 和 IPV6。
-
Phone: 驗(yàn)證值是否滿足電話號(hào)碼格式。
-
Subdomain: 驗(yàn)證用戶提交的自域名值是否已經(jīng)存在與當(dāng)前程序中。
-
Timezone: 驗(yàn)證時(shí)區(qū)值在系統(tǒng)時(shí)間日期數(shù)據(jù)庫(kù)中是否有效。
-
US State: 驗(yàn)證值是不是美國(guó)的州/加拿大的省份。
Spatie 的 5 條規(guī)則
Spatie 在自己的 存儲(chǔ)庫(kù) 中提供了一些驗(yàn)證規(guī)則:
-
Authorized: 驗(yàn)證用戶是否有權(quán)對(duì)某一個(gè)模型的實(shí)例執(zhí)行功能。
-
CountryCode: 驗(yàn)證字段是不是一個(gè)有效的 ISO3166 國(guó)家/地區(qū)代碼。
-
Enum: 驗(yàn)證值是不是屬于給定枚舉類的一部分, 例如 myclabs/php-enum.
-
ModelsExist: 驗(yàn)證輸入數(shù)組中的所有值都作為給定模型類的屬性存在。
-
Delimited: 驗(yàn)證字符串中是否有定界值, 例如 ‘sebastian@example.com, alex@example.com’中的@符
Pineco.de 的 5 條規(guī)則
最后是來(lái)自Gerg? D. Nagy 在 2017 年 年末發(fā)表在 pineco 的一篇文章。 相關(guān)驗(yàn)證規(guī)則存儲(chǔ)在 GitHub存儲(chǔ)庫(kù)。但是自那時(shí)起就沒(méi)有再更新過(guò),謹(jǐn)慎使用! 規(guī)則如下:
- password:檢查用戶的密碼。
- Odd:檢查值是不是奇數(shù)。
- even: 檢查值是不是偶數(shù)。
- incremented:檢查值是不是一個(gè)自增字段。
- specific words:檢查值是否包含特定單詞。
-
weekday:檢查日期是不是一個(gè)合法的工作日。
原文地址:https://laraveldaily.com/40-additional-laravel-validation-rules/
譯文地址:https://learnku.com/laravel/t/39365
【