Usuário com melhor resposta
validação de CPF/CNPJ

Pergunta
-
Como fazer validação de CPF/CNPJ sem usar função e fazendo toda a codificação em um botão para validar?sexta-feira, 31 de outubro de 2014 02:10
Respostas
-
Gilmar,
A validação de CNPJ/CPF é uma função matemática, então você sempre vai cair no mesmo estilo de método.
Segue abaixo o método que eu utilizo para a validação de CPF.
/// <summary> /// Valida CPF. /// </summary> /// <param name="v">CPF para validar.</param> /// <returns> True se for um CPF válido, False se inválido.</returns> public static bool IsCPF(string v) { int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 }; int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 }; string tempCpf; string digito; string cpf; int soma; int resto; cpf = v; cpf = cpf.Trim(); cpf = cpf.Replace(".", string.Empty).Replace("-", string.Empty); if (cpf.Length != 11) return false; tempCpf = cpf.Substring(0, 9); soma = 0; for (int i = 0; i < 9; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i]; resto = soma % 11; if (resto < 2) resto = 0; else resto = 11 - resto; digito = resto.ToString(); tempCpf = tempCpf + digito; soma = 0; for (int i = 0; i < 10; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i]; resto = soma % 11; if (resto < 2) resto = 0; else resto = 11 - resto; digito = digito + resto.ToString(); return cpf.EndsWith(digito); }
Segue abaixo a validação de CNPJ.
/// <summary> /// Valida CNPJ. /// </summary> /// <param name="v">CNPJ para validar.</param> /// <returns> True se for um CNPJ válido, False se inválido.</returns> public static bool IsCNPJ(string v) { int[] multiplicador1 = new int[12] { 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 }; int[] multiplicador2 = new int[13] { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 }; int soma; int resto; string digito; string tempCnpj; string cnpj = v; cnpj = cnpj.Trim(); cnpj = cnpj.Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty); if (cnpj.Length != 14) return false; tempCnpj = cnpj.Substring(0, 12); soma = 0; for (int i = 0; i < 12; i++) soma += int.Parse(tempCnpj[i].ToString()) * multiplicador1[i]; resto = (soma % 11); if (resto < 2) resto = 0; else resto = 11 - resto; digito = resto.ToString(); tempCnpj = tempCnpj + digito; soma = 0; for (int i = 0; i < 13; i++) soma += int.Parse(tempCnpj[i].ToString()) * multiplicador2[i]; resto = (soma % 11); if (resto < 2) resto = 0; else resto = 11 - resto; digito = digito + resto.ToString(); return cnpj.EndsWith(digito); }
Abs.
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx
- Sugerido como Resposta Ricardo Barbosa Cortes sexta-feira, 31 de outubro de 2014 15:34
- Marcado como Resposta Ricardo Barbosa Cortes sexta-feira, 31 de outubro de 2014 16:48
sexta-feira, 31 de outubro de 2014 09:44
Todas as Respostas
-
Gilmar,
A validação de CNPJ/CPF é uma função matemática, então você sempre vai cair no mesmo estilo de método.
Segue abaixo o método que eu utilizo para a validação de CPF.
/// <summary> /// Valida CPF. /// </summary> /// <param name="v">CPF para validar.</param> /// <returns> True se for um CPF válido, False se inválido.</returns> public static bool IsCPF(string v) { int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 }; int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 }; string tempCpf; string digito; string cpf; int soma; int resto; cpf = v; cpf = cpf.Trim(); cpf = cpf.Replace(".", string.Empty).Replace("-", string.Empty); if (cpf.Length != 11) return false; tempCpf = cpf.Substring(0, 9); soma = 0; for (int i = 0; i < 9; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i]; resto = soma % 11; if (resto < 2) resto = 0; else resto = 11 - resto; digito = resto.ToString(); tempCpf = tempCpf + digito; soma = 0; for (int i = 0; i < 10; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i]; resto = soma % 11; if (resto < 2) resto = 0; else resto = 11 - resto; digito = digito + resto.ToString(); return cpf.EndsWith(digito); }
Segue abaixo a validação de CNPJ.
/// <summary> /// Valida CNPJ. /// </summary> /// <param name="v">CNPJ para validar.</param> /// <returns> True se for um CNPJ válido, False se inválido.</returns> public static bool IsCNPJ(string v) { int[] multiplicador1 = new int[12] { 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 }; int[] multiplicador2 = new int[13] { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 }; int soma; int resto; string digito; string tempCnpj; string cnpj = v; cnpj = cnpj.Trim(); cnpj = cnpj.Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty); if (cnpj.Length != 14) return false; tempCnpj = cnpj.Substring(0, 12); soma = 0; for (int i = 0; i < 12; i++) soma += int.Parse(tempCnpj[i].ToString()) * multiplicador1[i]; resto = (soma % 11); if (resto < 2) resto = 0; else resto = 11 - resto; digito = resto.ToString(); tempCnpj = tempCnpj + digito; soma = 0; for (int i = 0; i < 13; i++) soma += int.Parse(tempCnpj[i].ToString()) * multiplicador2[i]; resto = (soma % 11); if (resto < 2) resto = 0; else resto = 11 - resto; digito = digito + resto.ToString(); return cnpj.EndsWith(digito); }
Abs.
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx
- Sugerido como Resposta Ricardo Barbosa Cortes sexta-feira, 31 de outubro de 2014 15:34
- Marcado como Resposta Ricardo Barbosa Cortes sexta-feira, 31 de outubro de 2014 16:48
sexta-feira, 31 de outubro de 2014 09:44 -
Gilmar,
A validação de CNPJ/CPF é uma função matemática, então você sempre vai cair no mesmo estilo de método.
Segue abaixo o método que eu utilizo para a validação de CPF.
/// <summary> /// Valida CPF. /// </summary> /// <param name="v">CPF para validar.</param> /// <returns> True se for um CPF válido, False se inválido.</returns> public static bool IsCPF(string v) { int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 }; int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 }; string tempCpf; string digito; string cpf; int soma; int resto; cpf = v; cpf = cpf.Trim(); cpf = cpf.Replace(".", string.Empty).Replace("-", string.Empty); if (cpf.Length != 11) return false; tempCpf = cpf.Substring(0, 9); soma = 0; for (int i = 0; i < 9; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i]; resto = soma % 11; if (resto < 2) resto = 0; else resto = 11 - resto; digito = resto.ToString(); tempCpf = tempCpf + digito; soma = 0; for (int i = 0; i < 10; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i]; resto = soma % 11; if (resto < 2) resto = 0; else resto = 11 - resto; digito = digito + resto.ToString(); return cpf.EndsWith(digito); }
Segue abaixo a validação de CNPJ.
/// <summary> /// Valida CNPJ. /// </summary> /// <param name="v">CNPJ para validar.</param> /// <returns> True se for um CNPJ válido, False se inválido.</returns> public static bool IsCNPJ(string v) { int[] multiplicador1 = new int[12] { 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 }; int[] multiplicador2 = new int[13] { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 }; int soma; int resto; string digito; string tempCnpj; string cnpj = v; cnpj = cnpj.Trim(); cnpj = cnpj.Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty); if (cnpj.Length != 14) return false; tempCnpj = cnpj.Substring(0, 12); soma = 0; for (int i = 0; i < 12; i++) soma += int.Parse(tempCnpj[i].ToString()) * multiplicador1[i]; resto = (soma % 11); if (resto < 2) resto = 0; else resto = 11 - resto; digito = resto.ToString(); tempCnpj = tempCnpj + digito; soma = 0; for (int i = 0; i < 13; i++) soma += int.Parse(tempCnpj[i].ToString()) * multiplicador2[i]; resto = (soma % 11); if (resto < 2) resto = 0; else resto = 11 - resto; digito = digito + resto.ToString(); return cnpj.EndsWith(digito); }
Abs.
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx
Dentro dessa função que você usa, como faz para não aceitar números inválidos como "11111111111" ?
sexta-feira, 31 de outubro de 2014 10:46