Hi,
Bin neu in JavaScript finde den Fehler nicht, lg Figgi
Bin nicht neu in Javascript, finde aber Deine Fehlerbeschreibung nicht.
const regExp = /[1][A-ZÄÖÜa-zäöüß-\s]* \d+[a-z]?(-\d+[a-z]?)? \d{5} [A-Z][A-ZÄÖÜa-zäöüß-\s]* [A-Z][A-ZÄÖÜa-zäöüß-\s]*$/;
Soll das sowas wie 'Straße Hausnummer PLZ Ort' matchen?
Die Range ß-\s ergibt keinen Sinn. Wenn das - keinen Range bedeuten soll, muß es als erstes oder als letztes Zeichen in den [] stehen.
Gehen wir also mal von dem hier aus:
^[A-ZÄÖÜ][A-ZÄÖÜa-zäöüß\s-]* \d+[a-z]?(-\d+[a-z]?)? \d{5} [A-Z][A-ZÄÖÜa-zäöüß\s-]* [A-Z][A-ZÄÖÜa-zäöüß-\s]*$
Damit schließt Du viele gültige deutsche Adressen aus. Es gibt z.B. Straßen mit Ziffern mittendrin (Straße des 17. Juni). Ups, der Punkt wird ja auch nicht erlaubt - häufiger als mittendrin dürfte der Punkt am Ende der Straße vorkommen, weil die mit 'str.' abgekürzt wird.
Ach ja, im Ortsnamen kann auch ein Punkt vorkommen (z.B. 'Hann. Münden', oder in nach Heiligen benannten Orten ('St. Peter').
Du verlangst, daß der Ortsnmae aus mindestens 2 Teilen besteht? Oder soll der letzte Buchstabenhaufen ein Land sein? Dann macht aber die Festlegung der PLZ auf 5 Ziffern keinen Sinn (Österreich hat z.B. nur 4 Ziffern in der PLZ, Großbrexitannien hat 6 Stellen mit Buchstaben und Ziffern, …)
Immerhin erlaubst Du einstellige Straßennamen (gibt's z.B. in Elster-Trebnitz). Aber Mannheims Innenstadt kommt nicht durch - ('A 1'), aber auch viele Straßen in Berlin ('Straße 5') usw.
Akzentierte Zeichen verbietest Du auch (Carl-von-Linné-Str.). Und das ' magst Du auch nicht (u.a. "Auf'm Herz" in 35287 Amöneburg)
Usw.
cu,
Andreas a/k/a MudGuard
A-ZÄÖÜ ↩︎