Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de fazer uma rotina para validar cpf e cnpj automaticamente. Por enquanto estou so com a parte de logica.
Se x for um numero entao
teste se é um cnpj
Se não for cnpj,
Teste se é um cpf
Se nao for cnp nem cpf,
Escreva:
CPF OU CNPJ INVÁLIDO
Conseguir adiantar mas acho que falta normatizar o codigo.
<script language="javascript">
/*
Se x for um numero entao
teste se é um cnpj
Se não for cnpj,
Teste se é um cpf
Se nao for cnp nem cpf,
Escreva:
CPF OU CNPJ INVÁLIDO */
//-----------------------------------------------------
function Cpfstart(){
var cpfcnpj = frmTeste.numero.value
if (isNaN(cpfcnpj)){
alert('Você não digitou um número')
} else {
// alert('É um número!!')
function caracteres() {
cpjcnpj=document.form.campo.value.length;
if (numero == 11) {
//CPF
//-----------------------------------------------------------------------------------------------------
function mascara_cpf (campo,documento,f){
var mydata = '';
mydata = mydata + documento;
if (mydata.length == 3){
mydata = mydata + '.';
ct_campo = eval("document."+f+"."+campo+".value = mydata");
ct_campo;
}
if (mydata.length == 7){
mydata = mydata + '.';
ct_campo = eval("document."+f+"."+campo+".value = mydata");
ct_campo;
}
if (mydata.length == 11){
mydata = mydata + '-';
ct_campo1 = eval("document."+f+"."+campo+".value = mydata");
ct_campo1;
}
if (mydata.length == 14){
valida_cpf(f,campo);
}
}
function valida_cpf(f,campo){
pri = eval("document."+f+"."+campo+".value.substring(0,3)");
seg = eval("document."+f+"."+campo+".value.substring(4,7)");
ter = eval("document."+f+"."+campo+".value.substring(8,11)");
qua = eval("document."+f+"."+campo+".value.substring(12,14)");
var i;
var numero;
numero = (pri+seg+ter+qua);
s = numero;
c = s.substr(0,9);
var dv = s.substr(9,2);
var d1 = 0;
for (i = 0; i < 9; i++){
d1 += c.charAt(i)*(10-i);
}
if (d1 == 0){
var result = "falso";
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(0) != d1){
var result = "falso";
}
d1 *= 2;
for (i = 0; i < 9; i++){
d1 += c.charAt(i)*(11-i);
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(1) != d1){
var result = "falso";
}
if (result == "falso") {
alert("CPF inválido!");
aux1 = eval("document."+f+"."+campo+".focus");
aux2 = eval("document."+f+"."+campo+".value = ''");
}
}
//--------------------------------------------------------------------------------------------------------
}
if (numero == 14) {
//CNPJ
//--------------------------------------------------------------------
function valida_cnpj(f,campo){
pri = eval("document."+f+"."+campo+".value.substring(0,2)");
seg = eval("document."+f+"."+campo+".value.substring(3,6)");
ter = eval("document."+f+"."+campo+".value.substring(7,10)");
qua = eval("document."+f+"."+campo+".value.substring(11,15)");
qui = eval("document."+f+"."+campo+".value.substring(16,18)");
var i;
var numero;
var situacao = '';
numero = (pri+seg+ter+qua+qui);
s = numero;
c = s.substr(0,12);
var dv = s.substr(12,2);
var d1 = 0;
for (i = 0; i < 12; i++){
d1 += c.charAt(11-i)*(2+(i % 8));
}
if (d1 == 0){
var result = "falso";
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(0) != d1){
var result = "falso";
}
d1 *= 2;
for (i = 0; i < 12; i++){
d1 += c.charAt(11-i)*(2+((i+1) % 8));
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(1) != d1){
var result = "falso";
}
if (result == "falso") {
alert("CNPJ inválido!");
aux1 = eval("document."+f+"."+campo+".focus");
aux2 = eval("document."+f+"."+campo+".value = ''");
}
else
}
}
//-------------------------------------------------------------------
}
if (numero !=14 or !11 {
alert('Você deve escolher apenas numeros de 11 digitos para cpf ou 14 digitos para cnpj')
}
}
</script>
Ja que ninguem ajudou conseguir fazer uma parte do processo
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>
<body>
<script language="javascript">
//variavel er testa value
/*
LINKS DE REFERENCIA
http://www.mhavila.com.br/topicos/web/valform.html
http://andafter.org/blogs/odesenvolvedor/publicacoes/verifica-se-string-numro-no-javascript.html
http://guia-er.sourceforge.net/
http://guia-er.sourceforge.net/javascript.html#7_7
//BY ID INPUT POIS O MAGENTO NAO ACEITA NOME DO FORMULARIO
http://www.mhavila.com.br/topicos/web/cpf_cnpj.html
*/
function IsNumeric(numero)
{
var numero= document.getElementById("input").value;
var er = /^\d+$/; alert("E NUMERO");
contar (numero);} //CHAMAR A FUNCAO CONTAR NUMERO
else{alert("NAO E NUMERO");}
}
//--------------CONTAR CARACTERES
function contar() {
var teste = document.getElementById("input").value.length;
switch (teste) {
case 14:
alert("cnpj");
break;
case 11:
alert("cpf");
break;
default:
alert("Numero Inálido Digite um número com 11 caracteres para CPF ou 14 para CNPJ.");
}
}
//------------------------------------
</script>
<form name="teste">
<input type="text" name="input" id="input" onblur="IsNumeric()" /><br />
<input name="Enviar" type="submit" value="Enviar" />
</form>
</body>
</html>Eu não consegui entender a tua dúvida, ai fica impossível ajudar.
qual é o problema ?
Okay, e qual a dúvida ?
você pode filtrar, e ver se tem a qntidade de digitos para ser CNPJ ou CPF.