O CPF 58666979046999 (coloquei três 9s a mais, no final), por exemplo, é inválido e mesmo assim a função Cpf.Validate
retorna true
. Não sei se esse comportamento é intencional, mas achei estranho. Estranhamente, parece que a validação de CEP é a única que considera a quantidade de caracteres.
Exemplo:
using System;
using Maoli;
public class Program
{
public static void Main()
{
var cpfs = new[] {
"58666979046", // válido
"58666979046999", // inválido?
"586.669.790-46.999", // inválido?
};
foreach (string cpf in cpfs)
Console.WriteLine("CPF {0} é válido? {1}", cpf, Cpf.Validate(cpf) ? "SIM" : "NÃO");
var cnpjs = new[] {
"12658591000178", // válido
"12658591000178999", // inválido
"12.658.591/0001-78.999", // inválido
};
foreach (string cnpj in cnpjs)
Console.WriteLine("CNPJ {0} é válido? {1}", cnpj, Cnpj.Validate(cnpj) ? "SIM" : "NÃO");
var ceps = new[] {
"58088650",
"580886500",
"58088-650-99"
};
foreach (string cep in ceps)
Console.WriteLine("CEP {0} é válido? {1}", cep, Cep.Validate(cep) ? "SIM" : "NÃO");
}
}
Resultado:
- CPF 58666979046 é válido? SIM
- CPF 58666979046999 é válido? SIM
- CPF 586.669.790-46.999 é válido? SIM
- CNPJ 12658591000178 é válido? SIM
- CNPJ 12658591000178999 é válido? SIM
- CNPJ 12.658.591/0001-78.999 é válido? SIM
- CEP 58088650 é válido? SIM
- CEP 580886500 é válido? NÃO
- CEP 58088-650-99 é válido? NÃO
No .NET Fiddle: https://dotnetfiddle.net/lZluRC