olssonm / identity-number
Requires
- php: ^7.2
- illuminate/support: >=6.0
Requires (Dev)
- orchestra/testbench: >=4.0
README
⚠️ 已放弃 该包已放弃,转而使用olssonm/swedish-entity。
尽管该包在未来一段时间内仍然可用,但将不会进行更新。请尽可能迁移到olssonm/swedish-entity
。
瑞典“personnummer”验证器(即个人身份号码、社会保障号码或简称“PIN”)。
此验证器还处理瑞典组织号和称为“Samordningsnummer”(即协调号)的临时个人身份号码。
可用于独立包或与Laravel一起使用。
此包不仅适用于最后四位数字的Luhn算法,还检查出生日期是否有效。
当然,你可以向验证器投入任何你想要的格式,例如10位变体(7712112775
)或12位变体(197712112775
),带或不带连字符(771211-2775
,19771211-2775
)。
安装
通过Composer
$ composer require olssonm/identity-number
在Laravel中
此包使用Package Auto-Discovery来加载服务提供者。安装后,您应该会看到以下消息
Discovered Package: olssonm/identity-number
否则,按照标准的Laravel流程,只需在您的提供者数组中注册此包即可
'providers' => [ Olssonm\IdentityNumber\IdentityNumberServiceProvider::class, ]
使用方法
独立使用
安装后,通过composer安装的包可以直接使用
use Olssonm\IdentityNumber\Pin;
Personnummer ("个人身份号码")
Pin::isValid('19771211-2775'); // Defaults to identity number // true Pin::isValid('19771211-2775', 'identity'); // Identity validation specified // true
Organisationsnummer ("组织号码")
Pin::isValid('556016-0681', 'organization') // true
Samordningsnummer ("协调号码")
Pin::isValid('19671180-2850', 'coordination'); // true
协调号码验证器以与个人身份验证器相同的方式处理,但不会对出生日期进行检查/验证。
IdentityNumberFormatter类
IdentityNumberFormatter类允许您根据自定义需求格式化PIN/身份。该类也用于内部验证,但如果您想确保在数据库中保存的值与传递给验证器的值相同,则应在验证之前应用格式化。
use Olssonm\IdentityNumber\IdentityNumberFormatter; // Format to a 10-character PIN without a seperator $formatter = new IdentityNumberFormatter('19860210-7313', 10, false); // Get the formatted output $formatter->getFormatted(); // 8602107313 // You can also clean the number from all unwanted characters (new IdentityNumberFormatter('a19860210 - 7313', 12, true))->clean()->getFormatted(); // 19860210-7313
Laravel验证器
通过服务提供者扩展了Illuminate\Validator
,因此您只需使用identity_number
、coordination_number
和organization_number
规则,就像使用任何其他规则一样。
// Personal identity numbers public function store(Request $request) { $this->validate($request, [ 'number' => 'required|identity_number' ]); } // Coordination numbers public function store(Request $request) { $this->validate($request, [ 'number' => 'required|coordination_number' ]); } // Organization numbers public function store(Request $request) { $this->validate($request, [ 'number' => 'required|organization_number' ]); }
当然,您可以自定义错误消息
$validator = Validator::make($request->all(), [ 'number' => 'required|identity_number' ], [ 'number.identity_number' => "Hey! That's not a personnummer!" ]); if($validator->fails()) { return $this->returnWithErrorAndInput($validator); }
如果您在整个应用程序中使用验证,您可能还希望将错误消息放入您的 lang-files 中。
测试
$ composer test
或
$ phpunit
许可
MIT 许可证(MIT)。请参阅许可文件以获取更多信息。
© 2020 Marcus Olsson。