T
ToM80
Guest
Hi,
ich war gerade dabei eine IBAN Validierungsfunktion (RegEx für grundsätzliche richtige Eingabe wäre schon da) zu bauen. Allerdings scheint JavaScript mit den hohen Zahlen ein Prodblem zu haben, da das Modulo am Ende falsch berechnet wird. Oder ich habe einen logischen Fehler gemacht, den ich aber nicht finden kann.
Hier mein Script:
Habe ich einen Denkfehler oder ist JavaScript überfordert?
ich war gerade dabei eine IBAN Validierungsfunktion (RegEx für grundsätzliche richtige Eingabe wäre schon da) zu bauen. Allerdings scheint JavaScript mit den hohen Zahlen ein Prodblem zu haben, da das Modulo am Ende falsch berechnet wird. Oder ich habe einen logischen Fehler gemacht, den ich aber nicht finden kann.
Hier mein Script:
PHP:
function verifyIBAN(orgIban) {
console.log(orgIban);
var alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var countryCode=orgIban.slice(0,2);
console.log(countryCode);
var modulo=orgIban.slice(2,4);
console.log(modulo);
var bban=orgIban.slice(4,22);
console.log(bban);
var countryPos1=alphabet.indexOf(countryCode[0])+10;
console.log(countryPos1);
var countryPos2=alphabet.indexOf(countryCode[1])+10;
console.log(countryPos2);
var countryCode2=''+countryPos1+countryPos2+'00';
console.log(countryCode2);
var bbanCountry=bban+''+countryCode2;
console.log(bbanCountry);
var checksum=98-(bbanCountry%97); //bbanCountry%97 müsste 90 ergeben, es kommt aber 60 raus.
console.log(checksum);
if (checksum<10) {
checksum=''+0+checksum;
}
if (modulo==checksum) {
return true;
} else {
return false;
}
}
var IBAN="DE08700901001234567890";
console.log(verifyIBAN(IBAN));
Habe ich einen Denkfehler oder ist JavaScript überfordert?