• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Form Validierung: Leerzeichen zwischen Straße und Hausnummer

nikl

Neues Mitglied
Hallo

wir nutzen Magento und grundsätzlich bin ich ein Freund der Tatsache, dass bei diesem Shopsystem standardmässig kein extre Feld für die Hausnummer angegeben wird, sondern diese mit in das Straßenfeld eingegeben werden kann/muss.
Leider ist es jedoch so, dass viele Module, die Versand- oder Zahlarten hinzufügen oder anpassen, Probleme mit der Verarbeitung der angegebenen Daten bekommen, sobald zwischen Straße und Hausnummer kein Leerzeichen vorhanden ist.
Ich suche daher nach einer Lösung, wie ich sicher gehen kann, dass der Kunde ein Leerzeichen mit eingibt oder wie ich alternativ, die Daten nachträglich automatisch dementsprechend anpassen kann.

Grundsätzlich wäre es doch möglich, die Daten des Feldes folgendermaßen zu überprüfen und ändern:
Exisitiert eine beliebe Anzahl beliebiger Zeichen außer 0-9, der eine beliebige Anzahl der Zeichen 0-9 folgt, dann füge ein Leerzeichen zwischen beiden Zeichenfolgen ein.

Die Überprüfung müsste noch machbar sein, aber die Anpassung des Feldes - sit das überhaupt möglich? Oder gibt es eine bessere Lösung? (Das Aufteilen des Feldes in Straße und Hausnummer ist keine Alternative, da das gesamten Bestellsystem abgeändert werden müsste um das neue Feld zu verarbeiten)

Danke!
 
Ich dachte auch an Regular Expressions und mit entsprechender Dokumentation (danke für den Link! :) ) dürfte das wohl auch machbar sein. Das Einfügen des Leerzeichens ist mein Sorgenkind - ich weiß zwar, das Felder ja z.B. automatisch mit Werten gefüllt werden können und das es so grundsätzlich möglich ist, aber trotzdem wüsste ich gerade absolut nicht, wie ich an die Sache heran gehen müsste.
 
Und du musst sicher sein, dass Straßennamen keine Ziffern enthalten oder halt die Fehler in Kauf nehmen. ich wohn beispielsweise in XXX-Weg 6b. Wenn du nun XXX-Weg6b trennst, und einer schreibt versehentlich XXX-W3g17, was machst dann. Die richtige Methode ist eigentlich, die Adresse validieren zu lassen. Dazu gibt es Fuzzy Systeme, die alle gültigen Adressen gespeichert haben und gegebenenfalls Korrekturen vornehmen.
 
Hi NetAktiv!
Das tolle daran ist, das DHL Intraship ein solches System auch verwendet - nur dass dies für Magento offensichtichtlich nicht funktioniert bzw aus anderen Gründen nicht unterstützt wird.
 
Durchsuche doch den String vom Ende her: Suche die erste Ziffer und überspringe dann alles, was eine Ziffer ist. An der so gefundenen Position fügst Du das Leerzeichen ein (wenn noch keins da ist) und verschiebst den Teilstring mit der Hausnummer um eine Position nach hinten. Auf die Weise umgehst Du das Problem, dass der Anwender versehentlich Ziffern in der Straße eingeben könnte
Viel Erfolg und viele Grüße - Ulrich
 
nikl schrieb:
Leider ist es jedoch so, dass viele Module, die Versand- oder Zahlarten hinzufügen oder anpassen, Probleme mit der Verarbeitung der angegebenen Daten bekommen, sobald zwischen Straße und Hausnummer kein Leerzeichen vorhanden ist.

Das würde ich eher für das Problem halten.

Code:
var street, cleaned;

street  = 'Zimmer 45 a, Osterweg6, Köln';
cleaned = street.replace(/^(.*\S)(\d+\D*)$/, '$1 $2');

console.log(cleaned);

Kurzerklärung: Stringanfang, (beliebig viele Zeichen, einmal kein Whitespace), (mindestens eine Ziffer, beliebige viele Nicht-Ziffern), Stringende

Ob die Lösung aber so sinnvoll ist, weiß ich nicht.
 
Zurück
Oben