#iban #numbers #error #account #validation #format #iban-validator

无 std iban_validate

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

14 个版本 (8 个稳定版)

4.0.1 2021 年 12 月 29 日
4.0.0 2020 年 1 月 24 日
3.0.0 2019 年 11 月 10 日
2.0.0 2018 年 12 月 21 日
0.4.0 2017 年 5 月 12 日

#197解析器实现

Download history 22190/week @ 2024-04-02 19622/week @ 2024-04-09 19190/week @ 2024-04-16 20646/week @ 2024-04-23 19512/week @ 2024-04-30 21041/week @ 2024-05-07 17775/week @ 2024-05-14 21032/week @ 2024-05-21 20311/week @ 2024-05-28 20724/week @ 2024-06-04 19055/week @ 2024-06-11 16736/week @ 2024-06-18 15844/week @ 2024-06-25 16122/week @ 2024-07-02 15534/week @ 2024-07-09 15661/week @ 2024-07-16

每月 66,713 次下载
用于 8 个 crate(7 个直接使用)

MIT/Apache

44KB
649

iban_validate

Crates.io test Generation code fmt & clippy

此 crate 提供了一种简单的方法来验证 IBAN(国际银行账户号码)。为此,您可以使用函数 parse()。这将检查 IBAN 规则以及 BBAN 结构。提供的 Iban 结构提供了许多方法来简化 IBAN 的处理。其中许多方法通过 IbanLike trait 提供。

当 BBAN 解析失败时,错误类型 ParseIbanError 提供有关出错原因的有用信息。此外,错误还包含 BaseIban,您仍然可以使用它来访问有用的信息。

示例

以下示例对 IBAN 和 BBAN 格式进行了完整的验证。

use iban::*;

fn main() -> Result<(), ParseIbanError> {
  let account = "DE44500105175407324931".parse::<Iban>()?;
  assert_eq!(account.country_code(), "DE");
  assert_eq!(account.check_digits(), 44);
  assert_eq!(account.bban(), "500105175407324931");
  assert_eq!(account.electronic_str(), "DE44500105175407324931");
  assert_eq!(account.to_string(), "DE44 5001 0517 5407 3249 31");
  assert_eq!(account.bank_identifier(), Some("50010517"));
  assert_eq!(account.branch_identifier(), None);
  Ok(())
}

此库提供了什么?

  • 一个可以快速解析账户号码的 Iban 类型。它根本不需要分配,而是底层使用 arrayvec
  • 一个灵活的 API,即使国家不在 Swift 注册表中也非常有用(使用 BaseIban。而不是使用 panic,此 crate 提供了带有出错原因的带类型错误。
  • 所有功能都可以在 no_std 环境中使用(除了 std trait 的实现)。
  • 可选的序列化和反序列化通过 serde
  • 通过 Swift 提供的测试用例、自定义测试用例以及 proptest 进行 CI 测试的结果。
  • #![forbid(unsafe_code)],确保所有代码都使用安全的Rust编写。

使用方法

该crate可以在crates.io上找到。要使用此crate,只需将其作为依赖项添加

[dependencies]
iban_validate = "4"

功能

以下功能可用于配置crate

  • std:默认启用。启用标准库。它仅用于提供Error的实现。
  • serde:为IbanBaseIban启用serde支持。

贡献

如果您在此crate中遇到问题或想帮忙,请查看这里

稳定性

此crate可以在Rust编译器的最新稳定版本上使用,否则不提供稳定性保证。

许可

许可方式为以下之一

任选其一。

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应如上所述双重许可,不附加任何其他条款或条件。

依赖项

~235KB