Пример #1
0
        // Validada com PEX : 05/02/2014
        public static bool ValidarCNPJ(string cnpj)
        {
            #region Pex

            if (string.IsNullOrEmpty(cnpj))
            {
                return(false);
            }

            // apos remover os caracteres invalidos, verifica se a nova string ainda tem mais que 11 caracteres
            cnpj = HelperText.ExtractNumbers(cnpj);
            if (cnpj.Length != 14)
            {
                return(false);
            }

            #endregion Pex

            string s  = cnpj;
            string c  = s.Substring(0, 12);
            string dv = s.Substring(12, 2);

            int d1 = 0;
            for (int i = 0; i < 12; i++)
            {
                d1 += Int32.Parse(c.Substring(11 - i, 1)) * (2 + (i % 8));
            }
            if (0 == d1)
            {
                return(false);
            }

            d1 = 11 - (d1 % 11);
            if (d1 > 9)
            {
                d1 = 0;
            }
            if (Int32.Parse(dv.Substring(0, 1)) != d1)
            {
                return(false);
            }
            d1 *= 2;
            for (int i = 0; i < 12; i++)
            {
                d1 += Int32.Parse(c.Substring(11 - i, 1)) * (2 + ((i + 1) % 8));
            }
            d1 = 11 - (d1 % 11);
            if (d1 > 9)
            {
                d1 = 0;
            }
            if (Int32.Parse(dv.Substring(1, 1)) != d1)
            {
                return(false);
            }
            return(true);
        }
Пример #2
0
        // Validada com PEX : 05/02/2014
        public static bool ValidarCPF(string cpf)
        {
            #region Pex

            if (string.IsNullOrEmpty(cpf))
            {
                return(false);
            }

            // verifica se a string tem mais que 11 caracteres
            cpf = cpf.Replace(".", "").Replace("-", "").Replace("_", "");
            if (cpf.Length != 11)
            {
                return(false);
            }

            // apos remover os caracteres invalidos, verifica se a nova string ainda tem mais que 11 caracteres
            cpf = HelperText.ExtractNumbers(cpf);
            if (cpf.Length != 11)
            {
                return(false);
            }

            #endregion Pex

            string s  = cpf;
            string c  = s.Substring(0, 9);
            string dv = s.Substring(9, 2);
            int    d1 = 0;
            for (int i = 0; i < 9; i++)
            {
                d1 += Int32.Parse(c.Substring(i, 1)) * (10 - i);
            }

            if (d1 == 0)
            {
                return(false);
            }
            d1 = 11 - (d1 % 11);
            if (d1 > 9)
            {
                d1 = 0;
            }
            if (Int32.Parse(dv.Substring(0, 1)) != d1)
            {
                return(false);
            }
            d1 *= 2;
            for (int i = 0; i < 9; i++)
            {
                d1 += Int32.Parse(c.Substring(i, 1)) * (11 - i);
            }
            d1 = 11 - (d1 % 11);
            if (d1 > 9)
            {
                d1 = 0;
            }
            if (Int32.Parse(dv.Substring(1, 1)) != d1)
            {
                return(false);
            }

            return(true);
        }