jschaedl/iban-validation

一个小型库,用于验证国际银行账户号码(IBAN)。

v2.4.0 2024-03-03 13:12 UTC

This package is auto-updated.

Last update: 2024-09-03 14:13:24 UTC


README

StandWithUkraine

SWUbanner

给俄罗斯人的信息

如果您目前居住在俄罗斯,请阅读此信息

目的

一个小型库,用于根据SWIFT提供的IBAN注册表验证国际银行账户号码(IBAN)。有关更多信息,请参阅https://www.swift.com/standards/data-standards/iban

.github/workflows/ci.yaml PHP Version Latest Stable Version Latest Unstable Version Total Downloads License

开发状态

此库可供使用。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

作者

Jan Schädlich

贡献者

许可

MIT许可