Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webruno

Validação CPF

Recommended Posts

E ai galera!

 

Galera, não manjo muita coisa de javascript, e apareceu um probleminha aqui.

Eu tenho um código de validar CPF que está perfeito, mas eu queria incrementar ele para verificar o cpf com o ponto e traço (xxx.xxx.xxx.-xx) e não só numeros.

Tem como?

 

Obs.: todos os códigos que eu achei na net era só numeros.

 

Segue o código pra voces dar uma analizada...

 

ASP

[*]

 

[*]function validaCPF() {

 

[*] cpf d.cpfID.value;

 

[*] valor true;

 

[*] erro = new String;

 

[*] if (cpf.length < 11) erro +"Sao necessarios 11 digitos para verificacao do CPF! \n\n"

 

[*] var nonNumbers = /\D/;

 

[*] if (nonNumbers.test(cpf)) erro +"A verificacao de CPF suporta apenas numeros! \n\n";

 

[*] if (cpf ="00000000000" || cpf ="11111111111" || cpf ="22222222222" || cpf ="33333333333" || cpf ="44444444444" || cpf ="55555555555" || cpf ="66666666666" || cpf ="77777777777" || cpf ="88888888888" || cpf ="99999999999"){

 

[*] erro +"Numero de CPF invalido!"

 

[*] }

 

[*] var a = [];

 

[*] var b = new Number;

 

[*] var c = 11;

 

[*] for (i=0; i<11; i++){

 

[*] a cpf.charAt(i);

 

[*] if (i < 9) b += (a * --c);

 

[*] }

 

[*] if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }

 

[*] b = 0;

 

[*] c = 11;

 

[*] for (y=0; y<10; y++) b += (a[y] * c--); 

 

[*] if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }

 

[*] if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){

 

[*] erro +="Corrija o CPF!";

 

[*] }

 

[*] if (erro.length > 0){

 

[*] alert(erro);

 

[*] return false;

 

[*] }

 

[*] return true;

 

[*] }

 

[*]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro acho que você deve verificar se a string do CPF tem um padrão válido de caracteres: "XXX.XXX.XXX-XX", sacou? Pra isso, você pode utilizar a expressão regular:

/^\d{3}(\.\d{3}){2}-\d{2}$/

 

Ela verifica esse padrão de caracteres... aí você limpa tudo que não é número da string e joga na função que você já utiliza.

 

Que tal?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Illidian...

 

Além de me ajudar no forum de php, eu te encontro neste forum aqui tambem? hehehhe.

 

Pois é rapa, como tinha falado no 1° tópico, eu não manjo muito disso não. Se você pudesse da uma mastigada no código talvez eu consiga entender melhor...

 

Ficaria ruim pra voce dar um exemplo alterando o meu código a cima? Se não for pedir muito....

 

Valeu cara... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro, sem problemas... :)

 

É só acrescentar este código no início da função. Vou comentá-lo pra você entender o que estou fazendo:

 

function validaCPF() {

 

    cpf = d.cpfID.value;

    // verifica se o padrão de caracteres é válido

    if (!cpf.match(/^\d{3}(\.\d{3}){2}-\d{2}$/)) {

        erro += "CPF inválido!";

        return false;

    }

    // remove da string os caracteres "." e "-"

    cpf = cpf.replace(/[\.-]/, "");

 

    // ... e aqui vai o restante da função como já está atualmente

 

}

 

beleza? Qualquer dúvida é só postar...

 

[]'s!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.