Ich hab mal was für deutsche(DE+20Ziffern), österreichische(AT+18Ziffern) und schweizer(CH+19Ziffern) IBAN-Längen gebastelt.
Dem Eingabefeld, welchem man das folgende Javascript als Benutzerdefiniertes Formatierungsscript vorwirft, sollte egal sein ob die IBAN mit oder ohne Leerschläge eingegeben wurde:
DE12123412341234123412 oder
DE12 1234 1234 1234 1234 12
selbiges für AT und CH:
Das alles ist aber wirklich nur eine Längenprüfung abhängig von den ersten beiden Buchstaben. Stimmen die schon nicht, kommt eine allgemeine Fehlermeldung. Stimmt die Gesamtlänge zur Länderkennung, wird das Feld optisch mit Trennern dargestellt.
Die nächsteStufe wäre die Prüfung, ob es eine grundsätzlich valide IBAN ist, also die Stellen 3 und 4 mit der Prüfziffer zum Rest passen.
Dafür gibts z.B.
https://github.com/arhs/iban.js/ oder
https://www.npmjs.com/package/ibantools Habe ich beide aber noch nicht in ein PDF implementiert bekommen.
Und auch solche Brocken prüfen zwar ob die IBAN aus dem korrekten Präfix, der dazu erlaubten Anzahl und Zeichenauswahl* und die Prüfziffer der lokalen Berechnugsbestimmung entspricht, scheitern dann aber doch daran, dass das alles noch keine tatsächlich valide IBAN Ist:
"Deutschland (DE) hat eine komplexe Struktur mit 143 Algorithmen und benutzerdefinierten Gewichtungen: MOD10, MOD11, MOD7 etc.“[Quelle: https://de.iban.com/iban-checker ]
um eine Kombination aus BLZ und Kontonummer zu einer gültigen BBAN zusammengesetzt zu bekommen.
* Das sind die 7 Varianten an erlaubter und möglicher Zeichenauswahl der BBAN: