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
每月下载量 143 次
65KB
840 行
brado
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
如何贡献
- 将项目进行Fork;
- 创建一个带有修改建议的Pull Request。
(可选)通过Nix配置项目
- 安装nix(使用flakes,即>2.4);
- 将项目进行Fork;
- 克隆仓库,假设正在使用
direnv
nix flake clone github:your-github-user/brado --dest ./brado \
&& cd brado 1>/dev/null 2>/dev/null \
&& direnv allow
测试
要运行测试,只需执行以下命令
make test
依赖关系
~320KB