Reflectz’s Blog

Just another WordPress.com weblog

Máscara Javascript de CNPJ e CPF no Mesmo Campo do Formulário

leave a comment »

Eae pessoal, essa dica é bastante útil. Eu percebi que tem alguns foruns e sites falando e dando exemplo sobre, so que a maioria dos exemplos estão bugados ou não funcionam.

Então vou postar um exemplo bem prático e objetivo para resolver este problema. O código está bem comentado, então acho que não preciso de maiores esclarescimentos quanto ao javascript.

Primeiramente, a função JavaScript:


function mascaraMutuario(o,f){
    v_obj=o
    v_fun=f
    setTimeout('execmascara()',1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function cpfCnpj(v){

    //Remove tudo o que não é dígito
    v=v.replace(/\D/g,"")

    if (v.length <= 14) { //CPF

        //Coloca um ponto entre o terceiro e o quarto dígitos
        v=v.replace(/(\d{3})(\d)/,"$1.$2")

        //Coloca um ponto entre o terceiro e o quarto dígitos
        //de novo (para o segundo bloco de números)
        v=v.replace(/(\d{3})(\d)/,"$1.$2")

        //Coloca um hífen entre o terceiro e o quarto dígitos
        v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2")

    } else { //CNPJ

        //Coloca ponto entre o segundo e o terceiro dígitos
        v=v.replace(/^(\d{2})(\d)/,"$1.$2")

        //Coloca ponto entre o quinto e o sexto dígitos
        v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3")

        //Coloca uma barra entre o oitavo e o nono dígitos
        v=v.replace(/\.(\d{3})(\d)/,".$1/$2")

        //Coloca um hífen depois do bloco de quatro dígitos
        v=v.replace(/(\d{4})(\d)/,"$1-$2")

    }

    return v

}

Agora o exemplo HTML e o Formulário para utilização:

<html>
  <head>
    <title>Máscara Javascript de CNPJ e CPF no Mesmo Campo do Formulário</title>
  </head>
  <body>
    <form>
      <input type='text' name='cpfcnpj' onkeypress='mascaraMutuario(this,cpfCnpj)' onblur='clearTimeout()'>
    </form>
  </body>
</html>

Gostou? Testou? Deu certo? Comenta aew!😀

Written by reflectz

Maio 20, 2010 às 1:40 am

Publicado em Javascript

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: