Kreditkarten-Check

Zielsetzung

Überprüfen einer Kartennummer anhand der Prüfsumme.

Realisierung

Ein Inline-JScript prüft die Kartennummer und gibt eine Meldung aus:

function kc(){ // Kartentyp-Analyser, Prüfsummencheck (c) 2005 F.Perder@TU-Berlin.de, www.webdesign-perder.de
var kn=document.kkc.kkn.value;
kn=kn.replace(/\D/g,"");
var kkt="(UNBEKANNTER KARTENTYP)";
var kz1=kn.slice(0,1);
var kz2=kn.slice(0,2);
var kz3=kn.slice(0,3);
var kz4=kn.slice(0,4);
var ktl=20;
if (kz1=="4") { kkt="VISA"; ktl=16 }
if (kz2=="70") { kkt="Bahncard"; ktl=16 }
if (kz2=="99" || kz2=="22") { kkt="Miles & More"; ktl=15 }
if (kz2=="51" || kz2=="52" || kz2=="53" || kz2=="54" || kz2=="55") { kkt="Mastercard / Eurocard (/Credicard)"; ktl=16 }
if (kz4=="2131" || kz4=="1800") { kkt="JCB"; ktl=15 }
if (kz4=="2014" || kz4=="2149") { kkt="EnRoute"; ktl=15 }
if (kz4=="6011") { kkt="Discover"; ktl=16 }
if (kz2=="36" || kz2=="38" || kz3=="300" || kz3=="301" || kz3=="302" || kz3=="303" || kz3=="304" || kz3=="305") { kkt="Diner's Club"; ktl=14 }
if (kz2=="34" || kz2=="37") { kkt="American Express"; ktl=15 }
var ps=0;
var gd=0;
var ktlc=0;
for (var i=0;i<20;i++) {
if (kn.charAt(i)=="") {ktlc=i;i=20} else {
gd=kn.charAt(i)*((i+1)%2+1);
if (gd>9) ps=ps+gd-9; else ps=ps+gd;
}
}
var kg="FALSCH\n\nKARTENNUMMER UNGÜLTIG!!";
if (ps%10==0) { kg="KORREKT"; if (ktl!=ktlc) kg=kg+"\n\nKARTENNUMMER UNGÜLTIG!!" }
alert("Kartennummer: "+kn+"\nTyp: "+kkt+"\nPrüfsumme: "+kg);
}

Beispiel

Beispiel-Anwendung: Kreditkarten-Check

Skripte • © 2009 Computerhilfe Fabian Perder • www.chfp.de/skripte
Stats