c# Postleitzahl aufteilen
Ich brauche eine Methode zum teilen einer Postleitzahl aus dem Benutzer-Eintrag. Dies bedeutet, dass die postocode könnte schön formatiert vollständigen code, so wie "AB1-1BA" oder es könnte sein, alles, was Sie sich vorstellen konnte. Ich habe gesehen, einige regex zu prüfen das format der PLZ, aber es ist zu wissen, wo, um es zu teilen, wenn ich etwas wie "AB111AD" etc..
Dies ist die Rückkehr der erste Teil der Postleitzahl, im obigen Beispiel wäre "AB11". Irgendwelche Gedanken?
Danke..
Was sind die offiziellen Regeln auf, was Teil ist, was? Was definiert die Aufteilung im zweiten Beispiel werden
Postleitzahlen im Vereinigten Königreich sind entweder in der form 3 3 oder 4 3 z.B. TS1 8TY oder TS12 3TG
Es ist eine knifflige man als user input kann alles sein, und ich bin versucht zu umgehen, dass, wenn ich vielleicht nicht sollte. Es gibt nur so weit man gehen kann. Ich werde möglicherweise etwas tun, einfach und basiert auf dem Versuch, gespalten durch ein Leerzeichen, falls es einer ist, dann mit der Länge zu erraten der richtigen Stelle zu splitten und dann läuft durch den regex zu prüfen. Benutzer - wer braucht schon em!
Falsch, 2 von 3 ist auch gültig (berücksichtigen Sie, "W1" in London).
Siehe stackoverflow.com/q/164979/20048 für die Postleitzahlen-überprüfung
AB11 1AD
statt AB1 11AD
?Postleitzahlen im Vereinigten Königreich sind entweder in der form 3 3 oder 4 3 z.B. TS1 8TY oder TS12 3TG
Es ist eine knifflige man als user input kann alles sein, und ich bin versucht zu umgehen, dass, wenn ich vielleicht nicht sollte. Es gibt nur so weit man gehen kann. Ich werde möglicherweise etwas tun, einfach und basiert auf dem Versuch, gespalten durch ein Leerzeichen, falls es einer ist, dann mit der Länge zu erraten der richtigen Stelle zu splitten und dann läuft durch den regex zu prüfen. Benutzer - wer braucht schon em!
Falsch, 2 von 3 ist auch gültig (berücksichtigen Sie, "W1" in London).
Siehe stackoverflow.com/q/164979/20048 für die Postleitzahlen-überprüfung
InformationsquelleAutor Tikeb | 2009-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, wie UK Post Codes arbeiten, so ist der Letzte Teil betrachtet die letzten 3 Zeichen mit dem ersten Teil wird alles vor?
Wenn es ist, so etwas sollte funktionieren, vorausgesetzt, Sie haben bereits behandelt, entsprechende Validierung: (Bearbeitet durch Jon Skeets commment)
Zurückgeben, die Post-Code-minus die letzten 3 Zeichen.
Du hast Recht, das würde nicht funktionieren, aber es wäre genauso leicht zu Ersetzen, keine Leerzeichen, bevor Sie die Substring-Aufruf.
Wenn es passieren kann...es wird
InformationsquelleAutor Brandon
Ich geschrieben habe, etwas ähnliches in der Vergangenheit. Ich denke können Sie einfach split, bevor Sie die Letzte Ziffer. (z.B. entfernen Sie alle Leerzeichen, finden Sie die Letzte Ziffer und dann fügen Sie ein Leerzeichen vor):
Den Wikipedia-Eintrag hat eine Menge von Details, einschließlich reguläre Ausdrücke zur Validierung (nach Normierung 🙂
InformationsquelleAutor Jon Skeet
Ref: http://www.mrs.org.uk/pdf/postcodeformat.pdf
PLZ-FORMAT
Einer Postleitzahl besteht aus den folgenden Elementen:
PO1 3AX
Die folgende Liste zeigt alle gültigen PLZ-Formate.
"A" steht für einen Buchstaben und "N" steht für einen numerischen Zeichen.
Bitte beachten Sie Folgendes:
V nie verwendet werden.
Und es ist davon auszugehen, dass die
space
wird das vierte Zeichen vom Ende, dh., wenn eine Postleitzahl fehlt, ist ein Raum,SW109RL
können Sie blind setzen Sie ein Leerzeichen an der 4. position vom EndeSW10 9RL
InformationsquelleAutor Rao
Ich habe mit vielen britischen Versicherungs-websites, und wir Fragen normalerweise beide der Teile in verschiedene text-Boxen. Wie sind Sie mit der überprüfung der Adresse? In einigen Webseiten, die wir bitten, die post-code zusammen, aber wir benutzen QAS zu validieren, die Postleitzahl und bitten Sie den Benutzer, wählen Sie die Adresse aus. QAS überprüfen kann, selbst wenn die Postleitzahl eingegeben wird, zusammen.
InformationsquelleAutor Shoban
Reguläre Ausdrücke können dabei helfen, die leicht zu analysieren, UK post Codes durch die Verwendung von benannten Gruppen für jeden Teil des Codes. Reguläre Ausdrücke kann von hier entnommen werden:
http://www.regxlib.com/REDetails.aspx?regexp_id=260
oder hier:
http://www.mgbrown.com/PermaLink66.aspx
InformationsquelleAutor Boris Modylevsky
Brandon korrekt ist, können Sie substring auf die letzten 3 Zeichen, denn dies ist das format, definiert durch die Norm BS-7666. So "AA1 11AA" ist nicht in der Tat eine gültige Postleitzahl ein.
Offenbar die einzige Verletzung BS-7666 ist British Forces Post Office Postleitzahlen, die beginnen, BFPO und Ende mit 4 Nummern, z.B. "BFPO 1234".
Den Wikipedia-Eintrag hat mehr Informationen, wie auch die regexs für die Validierung. Es hat auch eine Wahl, Zitat: "völlig genaue überprüfung ist nur möglich, indem Sie versuchen, E-Mails zu der Adresse."
InformationsquelleAutor silves89
Vorausgesetzt, dass eine gültige Eingabe-Zeichenfolge, z.B. eine, die bestanden die folgenden regex:
Hinweis: diese ermöglicht optional Raum zwischen den und Incode Outcode.
Dann die folgende Ersetzung regex wird ordentlich es (teilt es in zwei fängt mit $1 und $2, dann fügt den Raum):
InformationsquelleAutor GlennG
Habe ich geschrieben eine Methode, um diese zu bewältigen, so gut ich kann für meine Anwendung.
Erstens lege ich die max Länge auf meiner textbox
@maxlength="8"
Dann rufe ich folgende Methode in meinem controller:
Die Methode besteht aus:
Es ist nicht hübsch, aber es scheint relativ robust, was ich brauche und mit der offensichtlichen Variationen der Nutzer zur Verfügung gestellten post-codes, in meiner Gegend zumindest.
Haftungsausschluss.
Brauche ich nicht zu schauen Postleitzahlen außerhalb meiner Gemeinde, soweit dieser app betroffen ist.
InformationsquelleAutor JsonStatham
Schrieb ich diese regex basiert auf dem @Jon Skeet ' s Vorschlag, die letzten 3 sind immer die Ziffer-Brief-Brief
([a-zA-Z][a-zA-Z0-9]{1,3}) ?(\d[a-zA-Z]{2})
Werde ich wohl lassen, durch einige schlechte durch, um diesen Teil
[a-zA-Z0-9]{1,3}
aber hey its gut genug für mich. Sie kann es hier testen.InformationsquelleAutor Matas Vaitkevicius
InformationsquelleAutor gdmanandamohon
Meine PHP-Funktion für dieses problem ....
InformationsquelleAutor C Florin