locked
validação de CPF/CNPJ RRS feed

  • 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

    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

    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