Regexp + Tabelle
bearbeitet von
Hi,
> Bin neu in JavaScript finde den Fehler nicht, lg Figgi
Bin nicht neu in Javascript, finde aber Deine Fehler***beschreibung*** nicht.
> const regExp = /^[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]*$/;
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 oder das Leerzeichen 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 genau 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ß***brexit***annien hat 6 Stellen mit Buchstaben und Ziffern, …)
Mehrteilige Ortsnamen wie z.B. 'Rothenburg ob der Tauber' erlaubst Du nicht.
Nicht nur, weil Du genau 2 Teile verlangst, sondern auch, weil die Teile nicht mit Kleinbuchstaben beginnen dürfen.
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