Skip to content

Instantly share code, notes, and snippets.

@wildiney
Created October 19, 2012 17:39
Show Gist options
  • Save wildiney/3919546 to your computer and use it in GitHub Desktop.
Save wildiney/3919546 to your computer and use it in GitHub Desktop.
Função Javascript para validar cartão de crédito
function checkCard(num){
var msg = Array();
var tipo = null;
if(num.length > 16 || num[0]==0){
msg.push("Número de cartão inválido");
} else {
var total = 0;
var arr = Array();
for(i=0;i<num.length;i++){
if(i%2==0){
dig = num[i] * 2;
if(dig > 9){
dig1 = dig.toString().substr(0,1);
dig2 = dig.toString().substr(1,1);
arr[i] = parseInt(dig1)+parseInt(dig2);
} else {
arr[i] = parseInt(dig);
}
total += parseInt(arr[i]);
} else {
arr[i] =parseInt(num[i]);
total += parseInt(arr[i]);
}
}
switch(parseInt(num[0])){
case 0:
msg.push("Número incorreto");
break;
case 1:
tipo = "Empresas Aéreas";
break;
case 2:
tipo = "Empresas Aéreas";
break
case 3:
tipo = "Viagens e Entretenimento";
if(parseInt(num[0]+num[1]) == 34 || parseInt(num[0]+num[1])==37){ operadora = "Amex"; }
if(parseInt(num[0]+num[1]) == 36){ operadora = "Diners"; }
break
case 4:
tipo = "Bancos e Instituições Financeiras";
operadora = "visa";
break
case 5:
if(parseInt(num[0]+num[1]) >= 51 && parseInt(num[0]+num[1])<=55){ operadora = "Mastercard"; }
tipo = "Bancos e Instituições Financeiras";
operadora = "Mastercard"
break;
case 6:
tipo = "Bancos e Comerciais";
operadora = "";
break
case 7:
tipo = "Companhias de petróleo";
operadora = "";
break
case 8:
tipo = "Companhia de telecomunicações";
operadora = "";
break
case 9:
tipo = "Nacionais";
operadora = "";
break
default:
msg.push("Número incorreto");
break;
}
}
if(msg.length>0){
console.log(msg);
} else {
console.log(num);
if(total%10 == 0){
console.log("Cartão válido: ("+total+")");
console.log("Tipo: " + tipo);
console.log("Operadora: " + operadora);
} else {
console.log("Cartão inválido: ("+total+")");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment