Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
js_checkiban [2015/12/19 15:56] 127.0.0.1 Externe Bearbeitung |
js_checkiban [2018/05/01 00:00] (aktuell) |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== IBAN mit JavaScript validieren ====== | ====== IBAN mit JavaScript validieren ====== | ||
| - | <file js checkIBAN.js> | + | <file javascript checkIBAN.js> |
| - | function checkIBAN( ElementName ) | + | function checkIBAN( IBAN ) |
| { | { | ||
| - | var elements = document.getElementsByName( ElementName ); | + | let mod = 0; |
| - | var Anz = elements.length, i = 0; mod = 0; | + | let letter = ""; |
| - | var IBAN = "", letter = "", block = ""; | + | let block = ""; |
| - | for( i=1;i<Anz;i++ ) // vom 2. bis zum letzten Block | + | IBAN = IBAN.replace(/ /g, ''); // alle Leerzeichen entfernen |
| - | IBAN += elements[i].value; // zu einer Zahl zusammenfassen | + | |
| - | IBAN += elements[0].value; // erster Block als letzter anfügen | + | part1 = IBAN.substr( 0, 4 ); // ersten 4 Zeichen |
| + | part2 = IBAN.substr( 4 ); // alle anderen Zeichen | ||
| - | for( i=0; i<=26;i++ ) // für jeden Buchstaben im Alphabet einen Schleifendurchlauf | + | IBAN = part2 + part1; // erster Block als letzter anfügen |
| - | { | + | |
| - | letter = String.fromCharCode( 65+ i ); // Buchstabe vom ASCII-Code ermitteln | + | |
| - | IBAN = IBAN.replace( letter, String( i+10 ) ); // Buchstabe gegen Zahl ersetzen | + | |
| - | } | + | |
| - | var Length = IBAN.length; // neue Länge des IBAN ermitteln (wurde durch 2stellige Zahlen länger) | + | for( a=65; a<=90; a++ ) // für jeden Buchstaben im Alphabet einen Schleifendurchlauf |
| + | { | ||
| + | letter = String.fromCharCode( a ); // Buchstabe vom ASCII-Code ermitteln | ||
| + | regexp = new RegExp( letter, 'g' ); // Parameter "g" = global match: find all mateches | ||
| + | IBAN = IBAN.replace( regexp, String( a-55 ) ); // Buchstabe gegen Zahl ersetzen | ||
| + | } | ||
| - | for( i=0; i<=Length; i=i+9 ) // Hilfsmethode für die Berechnung der Prüfziffer (9er-Blöcke) | + | let Length = IBAN.length; // neue Länge des IBAN ermitteln (wurde durch 2stellige Zahlen länger) |
| - | { | + | |
| - | if( mod == 0 ) // im 1. Durchgang 9 Zeichen ziehen | + | |
| - | block = IBAN.substr( i, 9 ); | + | |
| - | else if( mod < 10 ) // bei einstelligem Restwert die nächsten 8 Zeichen ziehen | + | |
| - | { | + | |
| - | block = String( mod ) + IBAN.substr( i, 8 ); | + | |
| - | i--; // Position um 1 Zeichen nach vorne verschieben | + | |
| - | } | + | |
| - | else // bei zweistelligem Restwert nur noch 7 Zeichen ziehen | + | |
| - | { | + | |
| - | block = String( mod ) + IBAN.substr( i, 7 ); | + | |
| - | i=i-2; // Position um 2 Zeichen nach vorne verschieben | + | |
| - | } | + | |
| - | mod = block % 97; // Restwert ermitteln | + | for( i=0; i<=Length; i=i+9 ) // Hilfsmethode für die Berechnung der Prüfziffer (9er-Blöcke) |
| - | } | + | { |
| + | if( mod === 0 ) // im 1. Durchgang 9 Zeichen ziehen | ||
| + | { | ||
| + | block = IBAN.substr( i, 9 ); | ||
| + | } | ||
| + | else if( mod < 10 ) // bei einstelligem Restwert die nächsten 8 Zeichen ziehen | ||
| + | { | ||
| + | block = String( mod ) + IBAN.substr( i, 8 ); | ||
| + | i--; // Position um 1 Zeichen nach vorne verschieben | ||
| + | } | ||
| + | else // bei zweistelligem Restwert nur noch 7 Zeichen ziehen | ||
| + | { | ||
| + | block = String( mod ) + IBAN.substr( i, 7 ); | ||
| + | i=i-2; // Position um 2 Zeichen nach vorne verschieben | ||
| + | } | ||
| - | if( mod == 1 ) // sofern die Prüfziffer korrekt ist muss der Restwert 1 ergeben | + | mod = block % 97; // Restwert ermitteln |
| - | return true; | + | } |
| - | else | + | |
| - | alert( "Die IBAN ist ungültig!" ); | + | |
| - | return false; // wird nur erreicht, wenn Script oben nicht mit 'true' beendet wird | + | if( mod === 1 ) // sofern die Prüfziffer korrekt ist muss der Restwert 1 ergeben |
| + | { | ||
| + | return true; | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | alert( "Die IBAN ist ungültig!" ); | ||
| + | } | ||
| + | |||
| + | return false; // wird nur erreicht, wenn Script oben nicht mit 'true' beendet wird | ||
| } | } | ||
| </file> | </file> | ||