Stefan Hermann: Ort und Postleitzahl mit "ereg" überprüfen

Ich habe in der letzten Stunde erfolglos versucht, eine Adressen im Stil von "12345 Testhausen" zu überprüfen, ob sie wie folgt aufgebaut ist: ob beide Teile vorhanden sind(Postleitzahl und Ort), ob die Postleitzahl auch nur aus 5 Zahlen besteht und der Ort nur aus Buchtaben und Bindestrichen. Hier mein Code:

if(ereg("/[1]{5}+[a-zA-Z/-]/",$_POST['objadress_03'])) Wenn die Adresse richtig ist, dann $checkvar3 = "1", sonst "2"
{
$checkvar3 = 1;
}
else {$checkvar3 = 2;}

Es wäre sehr nett, wenn mir jemand helfen könnte, weil ich leider noch nicht ganz das Prinzip verstanden habe!

MfG

Stefan Hermann


  1. 0-9 ↩︎

  1. if(ereg("/[1]{5}+[a-zA-Z/-]/",$_POST['objadress_03']))

    ereg braucht keinen delimitter! mache die / am Anfang und am Ende weg, dann sollte es funktionieren


    1. 0-9 ↩︎

    1. Also hab jetzt:

      eregi("[1]{5}+[a-zöäüß/-]$",$_POST['objadress_03'])

      Leider funktioniert das noch immer nicht! Hat jemand einen Vorschlag?

      Ich möchte zusätzlich noch klarstellen, dass es sich ausschließlich um Deutsche Adressen handel.


      1. 0-9 ↩︎

      1. Hi,

        eregi("[1]{5}+[a-zöäüß/-]$",$_POST['objadress_03'])

        ^ Stringanfang
        [0-9] Ziffern
        {5} davon 5 ==> 5 Ziffern

        • das ganze mindestens einmal
          also 5 oder 10 oder 15 oder 20 oder ... Ziffern
          gefolgt von einem der Zeichen a-zöäüß/-
          $ gefolgt vom Stringende

        Zulässig wären also:

        12345a
        2345678901ö
        123456789012345-

        usw.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

        1. 0-9 ↩︎

        1. Vielen Dank, es geht! Ich hatte da einen Denkfehler, weil ich es nicht ganz kapiert habe. Nur denke ich, dass ichs das nächste mal auch noch hinbekomm=)

          Gruß
          Stefan

  2. Hi,

    Ich habe in der letzten Stunde erfolglos versucht, eine Adressen im Stil von "12345 Testhausen" zu überprüfen, ob sie wie folgt aufgebaut ist: ob beide Teile vorhanden sind(Postleitzahl und Ort), ob die Postleitzahl auch nur aus 5 Zahlen besteht und der Ort nur aus Buchtaben und Bindestrichen.

    Das würde aber viele Orte ausschließen.
    Einerseits, weil zwar in Deutschland die Postleitzahlen 5stellig sind, in anderen Ländern aber nicht (teilweise kürzer - 4 in Österreich, teilweise länger, teilweise nicht nur Buchstaben, z.B. in England 6-stellige Kombination aus Buchstaben und Ziffern). Oder gar keine Postleitzahlen existieren (z.B. Irland)

    Aber selbst wenn nur deutsche Orte möglich sein sollten: Es gibt Orte, die haben andere Zeichen als Buchstaben und Bindestriche im Namen.
    Beispiele: Bad Endorf, Rothenburg ob der Tauber

    if(ereg("/[1]{5}+[a-zA-Z/-]/",$_POST['objadress_03'])) Wenn die Adresse richtig ist, dann $checkvar3 = "1", sonst "2"

    Damit schränkst Du ja noch weiter ein, nicht mal alle Buchstaben werden zugelassen.
    München, Mönchengladbach, Haßfurt und viele weitere wären alle ausgeschlossen.
    (für ausländische Namen wären natürlich noch Buchstaben mit Akzenten u.ä. zu berücksichtigen)

    Du solltest also erstmal über die Anforderungen nachdenken.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

    1. 0-9 ↩︎

    1. Tach auch,

      z.B. in England 6-stellige Kombination aus Buchstaben und Ziffern).

      Darf ich Dich korrigieren? Es sind normalerweise 7 Stellen, die Leerstelle in der Mitte ist Pflicht. Des weiteren koennen es (muessen es aber nicht) sogar 8 sein.

      Die meisten sind im Schema ab1_2cd, aber ab21_3cd (glaube jedenfalls das war das Schema) ist auch moeglich. Der Unterstrich entspricht der Leerstelle, hier zur Verdeutlichung eingesetzt.

      Und schliesslich gilt das gleiche Schema auch in Schottland, Wales und Nordirland.

      --
      Gruss,
      Armin
      1. Hi,

        Darf ich Dich korrigieren?

        Sicher, Du bist da näher dran am aktuellen Geschehen.

        Es sind normalerweise 7 Stellen, die Leerstelle in der Mitte ist Pflicht.

        Hm. War mir nicht bekannt. Meine Post ohne die Leerstelle kam aber auch immer an.

        Des weiteren koennen es (muessen es aber nicht) sogar 8 sein.

        <rausred>Die Formulierung z.B. in England 6-stellige Kombination schließt ja andere Formate nicht explizit aus ;-) </rausred>

        Die meisten sind im Schema ab1_2cd, aber ab21_3cd (glaube jedenfalls das war das Schema) ist auch moeglich.

        Ist mir noch keine begegnet mit mehr als 6 Stellen ;-)

        Und schliesslich gilt das gleiche Schema auch in Schottland, Wales und Nordirland.

        Siehe oben, durch das "z.B." schließe ich das ja nicht aus. Mir ging es vor allem darum, darauf hinzuweisen, daß Postleitzahlen nicht immer 5-stellig sein müssen und auch nicht immer Zahlen verwendet werden.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Tach auch,

          Hm. War mir nicht bekannt. Meine Post ohne die Leerstelle kam aber auch immer an.

          Klar, so schlecht wie Royal Mail immer gemacht wird sind sie gar nicht. Sogar ohne postcode kommt das meiste an, dauert halt nur ein bisschen laenger.

          Aber die korrekte Schreibweise ist mit Leerstelle.

          Ist mir noch keine begegnet mit mehr als 6 Stellen ;-)

          PA49 7UY

          Das ist Kilchoman auf der Isle of Islay. Seltsamerweise mit einem postcode von Paisley (da wurde das Paisley Muster erfunden), was geschaetzte 80 Meilen Luftlinie entfernt ist. Warum konnte mir noch keiner erklaeren.

          --
          Gruss,
          Armin
          1. Hallo.

            PA49 7UY

            Das ist Kilchoman auf der Isle of Islay. Seltsamerweise mit einem postcode von Paisley (da wurde das Paisley Muster erfunden), was geschaetzte 80 Meilen Luftlinie entfernt ist. Warum konnte mir noch keiner erklaeren.

            Vielleicht hätte man ansonsten für Glasgow und Falkirk längere Postleitzahlen benötigt, um alle Inselchen und Dörfer in der Gegend irgendwie abzudecken. In Deutschland sind die zweistelligen Postleitzahlengebiete ja auch recht groß, und nicht selten liegen die größeren Städte nicht in deren Mitte. Und von den deutschen KFZ-Kennzeichen wissen wir ja, dass auch Städte häufig kein eigenes Kennzeichen bekommen, wenn sie zu nah an einer noch größeren Stadt liegen. Dafür bekommen dann regelrechte Dörfer ihr eigenes Kennzeichen. Das System sollte ja auch schließlich nicht für die Allgemeinheit verständlich sein, sondern für den Staat und seine ehemaligen Betriebe.
            MfG, at