laravel5之自定義驗證規則15位18位身份證驗證(教程)
注:laravel5之自定義驗證15位18位身份證用(regex:pattern模式)不行的,因為laravel 不能使用管道分隔符(|).放棄這種模式,這種模式只能正則到一種,所以就得用laravel手動登錄檔驗證規則.例如:
1.先準備15位18位身份證正規表示式。
‘/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))
(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/‘
2.註冊到服務中,用的是laravel自帶的服務檔案,無需新增服務檔案。
app\Providers\AppServiceProvider.php
在檔案中的boot方法中新增
public function boot()
{
Validator::extend(‘identitycards’, function($attribute, $value, $parameters)
{
return preg_match(‘/(^[1-9]\d{5}(18|19|([23]\d))\d{2}
((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/‘, $value);
});
}
3.自定義驗證錯誤資訊,找到resources\lang\zh-CN\validation.php檔案
在return中新增
‘identitycards’ => ‘身份證號錯誤!’,
這樣就註冊好了。
現在開始始用,在你需要的地方使用,和laravel提供的驗證一樣如下
‘icards’ => ‘required|identitycards
注:identitycards這個命名就是新的驗證規則可自定義()但三個地方都得一致。
本作品採用《CC 協議》,轉載必須註明作者和本文連結