2
respostas

Meu cpf tem comprimento de 13 caracteres ao invés de 11

Olá!

Por algum motivo, que não consegui descobrir, o meu programa lê as 2 vírgulas do cpf como caracteres, mesmo já tendo utilizado os métodos Replace e Trim para "limpar" o cpf.

Já alterei o Replace do ponto para vírgula e dá no mesmo.

string vConteudo = msk_cpf.Text;
            vConteudo = vConteudo.Replace(".", "").Replace("-", "");
            vConteudo = vConteudo.Trim(); // retira os espaços em branco ################################################


            bool validaCpf = false;

            if (vConteudo == "")
            {
                MessageBox.Show("Você deve digitar um CPF", "Mensagem de validação", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (vConteudo.Length != 11)
                {
                    MessageBox.Show(vConteudo.Length.ToString());
                    MessageBox.Show("O CPF deve possuir 11 dígitos", "Mensagem de validação", MessageBoxButtons.OK, MessageBoxIcon.Error);

                }

alguém sabe o motivo disso estar acontecendo?

obrigado!

2 respostas

Oi Ley, tudo bem?

O CPF não tem vírgulas... Ele tem pontos, e é isso que está sendo removido no Replace.

O método Trim() apenas remove os espaços antes e depois do que foi digitado.

Se você quiser tratar vírgulas, tente adicionar mais um Replace para esta condição.

Olá, Erick. Tudo, e contigo?

Obrigado por responder, mas acho que vc não entendeu o problema. O meu CPF tem 13 caracteres, e não 11, como mostrado na aula.

A mascara é: msk_cpf.Mask = "000,000,000-00"

E essas vírgulas estão sendo contabilizadas como caracteres pelo programa. Eu já tratei, tanto os pontos quanto as vírgulas, com o Replace. Contudo o resultado não muda. O programa simplesmente não está contabilizando apenas os números, ele contabiliza as vírgulas também.