#docs #validation #brazilian

brado

brado 是一个巴西文档验证器

7 个版本 (2 个稳定版)

1.1.0 2024年7月30日
1.0.0 2024年6月28日
0.4.0 2024年4月7日
0.3.1 2024年3月16日
0.1.0 2023年12月14日

开发工具 中排名第 500

Download history 157/week @ 2024-06-25 52/week @ 2024-07-02 2/week @ 2024-07-23 140/week @ 2024-07-30 1/week @ 2024-08-06

每月下载量 143

MIT 许可证

65KB
840

brado

latest release latest release latest release

Brado 是一个用于验证巴西文档的 Rust 包。该项目灵感来源于 Python 库 validate-docbr.

Brado 提供识别、验证和生成巴西文档的功能。这个库的名字(Brado)是 BRAzilian DOcs validator(巴西文档验证器)的缩写。

⚠️ 该库支持 CNPJ 字符串。⚠️ 该库的文档可以在此访问 此处

快速指南

要将此包添加到项目中,只需运行以下命令

cargo add brado

或者将以下行添加到 Cargo.toml 文件中

brado = "1.1.0"

文档

  • CPF:个人身份信息登记;
  • CNH:驾驶证;
  • CNPJ:法人身份信息登记;
  • CNS:国家健康卡;
  • NIS:NIS/NIT/PIS/PASEP;
  • 选举证:允许巴西公民投票的登记;
  • RENAVAM:车辆注册登记;
  • 出生证明、结婚证和死亡证明。

函数

所有文档都具有相同的函数,并且以相同的方式工作。

validate

验证作为参数传递的文档(&str)。返回一个布尔值(bool),如果文档有效则返回 true,否则返回 false

use brado::cpf;

cpf::validate("63929247011"); // true
cpf::validate("639.292.470-11"); // true

cpf::validate("63929247010"); // false
cpf::validate("639.292.470-10"); // false

mask

如果作为参数传递的文档(&str)没有符号且具有无符号文档字符数,则对其进行掩码。返回一个字符串(Result<String, &'static str>),对应于掩码后的文档或错误。

use brado::cpf;

cpf::mask("63929247011"); // Ok("639.292.470-11")

cpf::mask("639.292.470-11"); // Err("The given string cannot be masked as CPF!")
cpf::mask("639292470"); // Err("The given string cannot be masked as CPF!")

is_bare

检查作为参数传递的文档(&str)是否没有符号。返回一个布尔值(bool),如果文档没有符号则返回 true,否则返回 false

use brado::cpf;

cpf::is_bare("63929247011"); // true (CPF válido sem máscara)
cpf::is_bare("63929247010"); // true (CPF inválido sem máscara)

cpf::is_bare("639.292.470-11"); // false (CPF válido com máscara)
cpf::is_bare("639.29247011"); // false (CPF válido mascarado errado)
cpf::is_bare("639292470110"); // false (CPF inválido sem máscara)

注意:如果使用函数 cpf::is_bare 来检查一个CNPJ是否不包含符号,结果将是 false!这是因为该函数认为字符串是一个CPF,即它有11位数字。

is_masked

检查传入的文档参数(&str)是否按照相应的文档进行了遮罩。返回一个布尔值(bool),如果文档被遮罩则返回 true,否则返回 false

use brado::cpf;

cpf::is_masked("639.292.470-11"); // true (CPF válido com máscara)
cpf::is_masked("639.292.470-10"); // true (CPF inválido com máscara)

cpf::is_masked("63929247011"); // false (CPF válido sem máscara)
cpf::is_masked("6392.92.470-11"); // false (CPF válido mascarado errado)
cpf::is_masked("639.292.470-110"); // false (CPF inválido com máscara)

注意:cpf::is_masked 检查传入的字符串是否被遮罩为一个CPF。 cnpj::is_masked 检查传入的字符串是否被遮罩为一个CNPJ。

generate

生成一个新的无符号文档(String)。

use brado::cpf;

cpf::generate(); // "63929247011"

generate_masked

生成一个新的遮罩文档(String)。

use brado::cpf;

cpf::generate_masked(); // "639.292.470-11"

docs::is_cpf, docs::is_cnpj, docs::is_cnh, docs::is_cns

这些函数检查传入的文档参数(&str)是否分别是有效的CPF、CNPJ、CNH和CNS。这些函数是每个文档验证函数的快捷方式(别名),适用于文档类型识别的上下文。

use brado::docs;

docs::is_cpf("639.292.470-11"); // true
docs::is_cnpj("639.292.470-11"); // false

如何贡献

  1. 将项目进行Fork;
  2. 创建一个带有修改建议的Pull Request。

(可选)通过Nix配置项目

  1. 安装nix(使用flakes,即>2.4);
  2. 将项目进行Fork;
  3. 克隆仓库,假设正在使用 direnv
nix flake clone github:your-github-user/brado --dest ./brado \
&& cd brado 1>/dev/null 2>/dev/null \
&& direnv allow

测试

要运行测试,只需执行以下命令

make test

依赖关系

~320KB