#validation #document #brazilian #validate #numbers #de #validador

validador-br

巴西各种国内文件的验证器(BR)。实现了巴西国内各种文件的计算校验码,包括Cpf, Cnpj, CartaoCredito, TituloEleitor, Cnh, Rg, Pis;即将实现新的文件Ie Im Inss Renavam。

4个版本

0.1.3 2023年6月12日
0.1.2 2023年6月11日
0.1.1 2023年6月10日
0.1.0 2023年6月10日

#3 in #brazilian

Download history 20/week @ 2024-05-11 33/week @ 2024-05-18 16/week @ 2024-05-25 71/week @ 2024-06-01 103/week @ 2024-06-08 31/week @ 2024-06-15 64/week @ 2024-06-22 52/week @ 2024-07-06 46/week @ 2024-07-13 36/week @ 2024-07-20 67/week @ 2024-07-27 17/week @ 2024-08-03

每月下载180次

MIT/Apache

22KB
400 行代码,不包括注释

💚💙💛 Validador-br

用rust编写的巴西文件号码验证器

一个用于rust的巴西国内各种文件的验证器

Crates.io Crates.io API Fórum de discussão

GitHub stars 通过评论、分享或提交pull request来贡献你的力量!

[0.1.3] - 2023-06-12

  • 实现了trait try_from() try_into()
  • 模块已被分到文件中

[0.1.2] - 2023-06-11

  • 添加了新的文件类型
pub struct Cns<'data>(pub &'data str);
pub struct Renavam<'data>(pub &'data str);
pub struct CodigoBarrasGs1<'data>(pub &'data str); // EAN8 EAN13 GTIN08..18

[0.1.1] - 2023-06-10

struct Cpf(&str);struct Cnpj(&str);struct CartaoCredito(&str);struct TituloEleitor(&str);struct Cnh(&str);struct Rg(&str); ✔ ⚠ ///verificar a legislação em seu Estado
struct Pis(&str);struct Ie(Uf, &str);

有关更多信息,请参阅变更日志

路线图

  • 实现最常见的文件 ✅
  • 忽略特殊字符、空格和标点符号 ✅
  • 如果数字数量不正确,则发出错误 panic!
  • 提前验证数字数量。 000.000.00_.XX
  • 分析重复数字,例如 111.111.111-11000.000.000-00
  • 验证每个州的州注册号 ❌
  • 实现新的文件类型 ❌

安装

将依赖项添加到您的 Cargo.toml

[dependencies]
validador-br = "0.1.2"

基本使用

use validador_br::types::{Cpf};

let cpf = Cpf::try_from("085.668.830-47");
match cpf {
    Ok(cpf) => println!("{}", cpf.0),
    Err(invalido) => panic!("{}", invalido)
};

也可以使用 validar() 方法,尽管不推荐。

use validador_br::validador::*;
use validador_br::types::{Cpf, Cnh};
Cpf("255.248.930-33").validar(); // ✅ true 
Cpf("25524893033").validar();// ✅ true
Cnh("25524893033").validar();// ❌ false

验证cpfs列表

use validador_br::validador::*;
use validador_br::types::Cpf;

fn main() {
    let cpf_list = [&"133.976.410-55", &"922.261.830-00", &"922.261.830-01", &"218.571.960-23"];
    for num in cpf_list {
        if Cpf::is_valid(num) {
            println!("{}", num)
        } else {
            println!("{}", num)
        }
    }
}

使用动态字符串

# use validador_br::validador::*;
# use validador_br::types::Cpf;
let cpf_string = String::from("133.976.410-55");
if Cpf(cpf_string.as_str()).validar() {}

许可证

validador-br 是一个开源软件,由 MIT许可

无运行时依赖