jschaedl / iban-validation
一个小型库,用于验证国际银行账户号码(IBAN)。
v2.4.0
2024-03-03 13:12 UTC
Requires
- php: ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-ctype: *
- symfony/options-resolver: ^5.4|^6|^7
Requires (Dev)
- phpunit/phpunit: ^9.5
Suggests
- ext-bcmath: This library makes use of bcmod function, so an installed bcmath extension is recommended.
README
给俄罗斯人的信息
如果您目前居住在俄罗斯,请阅读此信息。
目的
一个小型库,用于根据SWIFT提供的IBAN注册表验证国际银行账户号码(IBAN)。有关更多信息,请参阅https://www.swift.com/standards/data-standards/iban。
开发状态
此库可供使用。IBAN验证应该没有问题,但没有任何保证。请在自己的风险下使用。
功能
- 基于SWIFT注册表的IBAN验证的完整国家支持
- 可定制的违规信息
- 简单易用的面向对象API
- 高测试覆盖率
- 符合DIC规范
安装
要通过composer安装jschaedl/iban-validation
,请使用以下命令:
$ composer require jschaedl/iban-validation
您可以在Packagist上看到此库。
IBAN验证
<?php use Iban\Validation\Validator; use Iban\Validation\Iban; $iban = new Iban('DE89 3704 0044 0532 0130 00'); $validator = new Validator(); if (!$validator->validate($iban)) { foreach ($validator->getViolations() as $violation) { echo $violation; } }
您还可以通过配置提供它们来自定义违规信息。只需创建一个传递配置数组作为构造函数参数的Validator
。
<?php use Iban\Validation\Validator; $validator = new Validator([ 'violation.unsupported_country' => 'The requested country is not supported!', 'violation.invalid_length' => 'The length of the given Iban is not valid!', 'violation.invalid_format' => 'The format of the given Iban is not valid!', 'violation.invalid_checksum' => 'The checksum of the given Iban is not valid!', ]);
您可以将true
传递给Validator::validate(string|Iban $iban, bool $throw = false)
的第二个参数,以在验证错误时检索抛出的异常。
$validator = new Validator(); try { $validator->validate(new Iban('DE89 3704 0044 0532 0130 00'), throw: true); } catch (Exception $exception) { // ... }
IBAN信息
<?php use Iban\Validation\Iban; use Iban\Validation\CountryInfo; $iban = new Iban('IBAN DE89 3704 0044 0532 0130 00'); $iban->countryCode(); // 'DE' $iban->checksum(); // '89' $iban->bban(); // '370400440532013000' $iban->bbanBankIdentifier(); // '37040044' $iban->format(Iban::FORMAT_PRINT); // 'DE89 3704 0044 0532 0130 00' $iban->format(Iban::FORMAT_ELECTRONIC); // 'DE89370400440532013000' $iban->format(Iban::FORMAT_ANONYMIZED); // 'XXXXXXXXXXXXXXXXXX3000' $countryInfo = new CountryInfo('DE'); $countryInfo->getCountryName(); // 'Germany' $countryInfo->getIbanStructureSwift(); // 'DE2!n8!n10!n' $countryInfo->getBbanStructureSwift(); // '8!n10!n' $countryInfo->getIbanRegex(); // '/^DE\d{2}\d{8}\d{10}$/' $countryInfo->getBbanRegex(); // '/^\d{8}\d{10}$/' $countryInfo->getIbanLength(); // 22 $countryInfo->getBbanLength(); // 18 $countryInfo->getIbanPrintExample(); // 'DE89 3704 0044 0532 0130 00' $countryInfo->getIbanElectronicExample(); // 'DE89370400440532013000'
如何贡献
如果您想修复一些错误或增强某些功能,请从发布分支中分叉一个分支并创建自己的开发分支。然后修复您找到的错误或添加您的增强功能,并提交一个拉取请求。请分步骤提交您的更改,并在每个提交中添加详细描述。
所有拉取请求都必须遵循以下编码风格和静态代码分析规则,并通过单元测试。您可以通过执行以下命令来运行所有检查和测试:
$ make it
作者
许可
MIT许可