Os exemplos abaixo mostram como criar máscaras para campos
dos tipos:
·       
CNPJ;
·       
CPF;
·       
CEP;
·       
Data; 
·       
Telefone;
 
Os campos de CNPJ e CPF realizam a verificação de tais
campos para verificar se são documentos válidos
 
<script language="javascript" type="text/javascript">
    
    //Máscara de CNPJ
    function
MascaraCNPJ(cnpj) {
        if
(mascaraInteiro(cnpj) == false) {
            event.returnValue = false;           
     
        }
        return
formataCampo(cnpj, '00.000.000/0000-00',
event);
    }
 
    //Máscara
ao CPF
    function
MascaraCPF(cpf) {
        if
(mascaraInteiro(cpf) == false) {
            event.returnValue = false;
        }
        return
formataCampo(cpf, '000.000.000-00', event);
    }
 
    //Máscara
de CEP
    function
MascaraCep(cep) {
        if
(mascaraInteiro(cep) == false) {
            event.returnValue = false;
        }
        return
formataCampo(cep, '00.000-000', event);
    }
 
    //Máscara
de Data
    function
MascaraData(data) {
        if
(mascaraInteiro(data) == false) {
            event.returnValue = false;
        }
        return
formataCampo(data, '00/00/0000', event);
    }
 
    //Máscara
ao Telefone (9 digitos)
    function
MascaraTelefone(tel) {
        if
(mascaraInteiro(tel) == false) {
            event.returnValue = false;
        }
        return
formataCampo(tel, '(00) 0000-0000', event);
    }
    
    //validar
CNPJ 
    function
ValidarCNPJ(ObjCnpj) {
        var
cnpj = ObjCnpj.value;
        var valida = new Array(6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2);
        var
dig1 = new Number;
        var
dig2 = new Number;
 
        exp = /\.|\-|\//g
        cnpj = cnpj.toString().replace(exp, "");
        var
digito = new Number(eval(cnpj.charAt(12) +
cnpj.charAt(13)));
 
        for (i
= 0; i < valida.length; i++) {
            dig1
+= (i > 0 ? (cnpj.charAt(i - 1) * valida[i]) : 0);
            dig2 +=
cnpj.charAt(i) * valida[i];
        }
        dig1 = (((dig1 % 11) < 2) ? 0 : (11
- (dig1 % 11)));
        dig2 = (((dig2 % 11) < 2) ? 0 : (11
- (dig2 % 11)));
 
        if
(((dig1 * 10) + dig2) != digito) {
            alert('CNPJ Invalido!');            
        }
    }
 
    //Validar
CPF 
    function
ValidarCPF(Objcpf) {
        var
cpf = Objcpf.value;
        exp = /\.|\-/g
        cpf = cpf.toString().replace(exp, "");
        var
digitoDigitado = eval(cpf.charAt(9) + cpf.charAt(10));
        var
soma1 = 0, soma2 = 0;
        var
vlr = 11;
 
        for
(i = 0; i < 9; i++) {
            soma1 +=
eval(cpf.charAt(i) * (vlr - 1));
            soma2 +=
eval(cpf.charAt(i) * vlr);
            vlr--;
        }
        soma1 = (((soma1 * 10) % 11) == 10 ? 0 :
((soma1 * 10) % 11));
        soma2 = (((soma2 + (2 *
soma1)) * 10) % 11);
 
        var
digitoGerado = (soma1 * 10) + soma2;
        if
(digitoGerado != digitoDigitado) {
            alert('CPF Invalido!');            
        }
    }
 
    //Validar
CEP
    function
ValidaCep(cep) {
        exp =
/\d{2}\.\d{3}\-\d{3}/
        if (!exp.test(cep.value)) {
            alert('Cep Invalido!');            
        }
    }
 
    //Validar
data
    function
ValidaData(data) {
        exp =
/\d{2}\/\d{2}\/\d{4}/
        if (!exp.test(data.value))
{
            alert('Data Invalida!');
        }
    }
 
    //Validar
Telefone
    function ValidaTelefone(tel) {
        exp = /\(\d{2}\)\ \d{4}\-\d{4}/
        if (!exp.test(tel.value))
{
            alert('Telefone Invalido!');            
        }
    }
 
    //Validar
número inteiro com mascara
    function mascaraInteiro() {
        if
(event.keyCode < 48 || event.keyCode > 57) {
            event.returnValue = false;
            return
false;
        }
        return
true;
    }
   
    //formatar
os campos
    function
formataCampo(campo, Mascara, evento) {
        var
boleanoMascara;
 
        var
Digitato = evento.keyCode;
        exp = /\-|\.|\/|\(|\)|
/g
        campoSoNumeros =
campo.value.toString().replace(exp, "");
 
        var
posicaoCampo = 0;
        var
NovoValorCampo = "";
        var
TamanhoMascara = campoSoNumeros.length; ;
 
        if
(Digitato != 8) { // backspace 
            for (i = 0; i <= TamanhoMascara; i++) {
                boleanoMascara =
((Mascara.charAt(i) == "-") ||
(Mascara.charAt(i) == ".")
                                                                               ||
(Mascara.charAt(i) == "/"))
                boleanoMascara =
boleanoMascara || ((Mascara.charAt(i) == "(")
                                                                               ||
(Mascara.charAt(i) == ")") ||
(Mascara.charAt(i) == " "))
                if (boleanoMascara) {
                   
NovoValorCampo += Mascara.charAt(i);
                   
TamanhoMascara++;
                } else {
                   
NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
                    posicaoCampo++;
                }
            }
            campo.value = NovoValorCampo;
            return
true;
        } else
{
            return
true;
        }
    }
</script>
 
 
<h1 style="color:#FF9933">Máscara e validações com JavaScript</h1>
<label type="text" style="font-family:Verdana,Arial;" >CNPJ</label>
<input type="text" name="cnpj" onKeyPress="MascaraCNPJ(form1.cnpj);" maxlength="18"
onBlur="ValidarCNPJ(form1.cnpj);">
<p></p>
<label type="text" style="font-family:Verdana,Arial">CPF</label>
<input type="text" name="cpf" onBlur="ValidarCPF(form1.cpf);" onKeyPress="MascaraCPF(form1.cpf);"
maxlength="14">
<p></p>
<label type="text" style="font-family:Verdana,Arial">CEP</label>
<input type="text" name="cep" onKeyPress="MascaraCep(form1.cep);" maxlength="10"
onBlur="ValidaCep(form1.cep)">
<p></p>
<label type="text" style="font-family:Verdana,Arial">Data</label>    
<input type="text" name="data" onKeyPress="MascaraData(form1.data);" maxlength="10"
onBlur= "ValidaDataform1.data);">
<p></p>
<label type="text" style="font-family:Verdana,Arial">Telefone</label>    
<input type="text" name="tel" onKeyPress="MascaraTelefone(form1.tel);" maxlength="14"  onBlur="ValidaTelefone(form1.tel);">