Warum ein regulärer Ausdruck nicht ausreicht
Ein regulärer Ausdruck kann die formale Struktur einer IBAN prüfen, aber weder deren Länderlänge noch die Modulo-97-Prüfsumme berechnen. Eine reine Regex-Prüfung lässt formal plausible, aber rechnerisch ungültige IBANs unentdeckt durch.
| Regex prüft | grundsätzliches Format |
|---|---|
| Regex prüft NICHT | Länderlänge, Modulo-97-Prüfsumme |
Ein regulärer Ausdruck wie ^[A-Z]{2}[0-9]{2}[A-Z0-9]+$ – genau dieses Muster verwendet auch IbanRechner.validate() als zweiten von vier Prüfschritten – kann feststellen, ob eine Zeichenfolge grundsätzlich wie eine IBAN aufgebaut ist: zwei Buchstaben, zwei Ziffern, danach alphanumerische Zeichen.
Was ein regulärer Ausdruck allein nicht leisten kann: die für das jeweilige Land korrekte Gesamtlänge prüfen (dafür ist eine Nachschlagetabelle wie die interne IBAN_LENGTHS-Zuordnung nötig) und die Modulo-97-Prüfsumme nach ISO 7064 berechnen (dafür ist eine numerische Umwandlung und Restwertberechnung nötig, keine Mustererkennung). Eine Zeichenfolge kann das Regex-Muster vollständig erfüllen und trotzdem eine falsche Länge oder eine falsche Prüfsumme haben.
Für eine vollständige IBAN-Prüfung sind deshalb – wie in IbanRechner.validate() umgesetzt – mindestens drei zusätzliche Schritte über die reine Formatprüfung hinaus nötig: Längenprüfung nach Land, Prüfsummenberechnung, und die Behandlung des Falls, dass ein Land in der eigenen Längentabelle nicht bekannt ist (siehe der eigene Ratgeber „IBAN-Validierung technisch erklärt").
Passende Tools
- IBAN-Rechner – Kostenloser IBAN-Rechner: IBAN prüfen, aus BLZ und Kontonummer berechnen, Bank per BIC-Suche finden.
Häufige Fragen
Nein. Er prüft nur das grundsätzliche Format, nicht die länderspezifische Länge oder die Modulo-97-Prüfsumme.
Quellen
Repository-Quelle: public/iban-core.js, public/embed.js, public/embed-branded.js, public/widget.html, public/api.html, routes/api.js, server.js (Stand dieser Sitzung, live gegen den tatsaechlichen Code geprueft).