Peter: 0190/0900 Nummern erkennen

Hi *,

ich möcht bei einem Webformular erkennen ob jemand eine 0190er / 0900er Nummer eingegeben hat.
Mit regulären Ausdrücken kommt man da nicht sehr weit, da die Nummer auch durch irgendwelche Vor-vorwahlen maskiert sein kann (zB: 01058190123456) o.ä.. Insgesamt ist das Problem alles andere als trivial und benötigt sicher einiges an Spezialregelwerk.

Meine Frage: Kennt jemand eine Library (für PHP o.ä.) die dieses Problem für deutsche Nummern behandelt - oder mit der man z.B. Rufnummern parsen und in ihre Bestandteile zerlegen kann (Ländervorwahl, Ortsvorwahl etc.) oder mit der man zumindest eine Rufnummer syntaktisch auf ihre Gültigkeit überprüfen kann?

Grüße,
Peter

  1. Sup!

    Ist das wirklich so schwer? Internationale Vorwahlen haben die Form 00xx, die Vor-Vorwahlen haben immer 010xx, dann kommt die Vorwahl und dann die Rufnummer - denke ich mal so.

    Gruesse,

    Bio

    --
    Never give up, never surrender!!!
    1. Hi,

      Ist das wirklich so schwer? Internationale Vorwahlen haben die Form 00xx,

      00353 für Irland - paßt schon nicht ins Schema 00xx.
      Oder +49 für Deutschland ;-)

      die Vor-Vorwahlen haben immer 010xx,

      auch hier ist die Anzahl der Ziffern m.W. nicht konstant. Bei teltarif find ich auf Anhieb mehrere mit 3 Ziffern nach der 010, und einige mit nur 2 Ziffern.

      Aber was anderes: sind die 0190er nicht Ende letzten Jahres abgeschaltet worden?
      Es dürften demnach eigentlich nur noch die 900er interessant sein ...

      cu,
      Andreas

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

        Ist das wirklich so schwer? Internationale Vorwahlen haben die Form 00xx,
        00353 für Irland - paßt schon nicht ins Schema 00xx.

        stimmt. Oder 007 für Russland. Oder 001 für USA und Kanada.

        die Vor-Vorwahlen haben immer 010xx,
        auch hier ist die Anzahl der Ziffern m.W. nicht konstant.

        Richtig. :-)

        Um diese Nummernkomponenten korrekt aufzudröseln, müsste man sich mit Tabellen der zugeteilten Länder- und Providervorwahlen versorgen und dann Ziffer für Ziffer checken, so wie das in den Vermittlungsstellen ja auch abläuft.

        Aber was anderes: sind die 0190er nicht Ende letzten Jahres abgeschaltet worden?

        Jein. Es werden keine *neuen* 0190er-Nummern mehr vergeben. Die vorhandenen werden aber nur nach und nach umgestellt; es dürfte noch eine ganze Weile auch gültige 0190er-Vorwahlen geben.

        Schönen Abend noch,
         Martin

        --
        Wichtig ist, was hinten rauskommt.
          (Helmut Kohl, 16 Jahre deutsche Bundesbirne)
        1. Hi,

          Aber was anderes: sind die 0190er nicht Ende letzten Jahres abgeschaltet worden?

          Jein. Es werden keine *neuen* 0190er-Nummern mehr vergeben. Die vorhandenen werden aber nur nach und nach umgestellt; es dürfte noch eine ganze Weile auch gültige 0190er-Vorwahlen geben.

          Ok, noch 29 Tage gibt es sie, aber nur mit Bandansage der neuen 0900er-Nummer (Quelle: http://www.heise.de/newsticker/meldung/64183)

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          O o ostern ...
          Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        2. echo $begrüßung;

          die Vor-Vorwahlen haben immer 010xx,
          auch hier ist die Anzahl der Ziffern m.W. nicht konstant.
          Richtig. :-)
          Um diese Nummernkomponenten korrekt aufzudröseln, müsste man sich mit Tabellen der zugeteilten Länder- und Providervorwahlen versorgen und dann Ziffer für Ziffer checken, so wie das in den Vermittlungsstellen ja auch abläuft.

          Die Regel für die Providervorwahl ist recht einfach: 010 gefolgt von 10..99 und 0100 gefolgt von 00..99

          echo "$verabschiedung $name";

  2. Hi,

    von regulären Ausdrücken hab ich nicht so viel Ahnung, aber als Laie würde ich sagen Telefonnummern zu zerlegen oder zu erkennen ist sogut wie unmöglich. Natürlich wäre es leicht zu überprüfen ob die eingegebene Ziffernfolge eine 900 oder 0900 enthält. Aber es gibt auch Leute die haben dann Telefonnummern wie 58900 z.B. und wären somit ausgeschlossen.

    Wenn du dann überprüfen willst wo ungefähr sich die Ziffernfolge befindet hast du das Problem mit der Maskierung und wie jemand die Nummer eingibt. Mit Ländervorwahl, Ortsvorwahl... Außerdem werden einige einen Schrägstrich verwenden, andere einen Bindestrich und so weiter. Du könntest natürlich mehrere Felder vorgeben. Z.B. Ländervorwahl, Ortsvorwahl bzw. Handynetzvorwahl und eigentlich Nummer. Und das dann zu überprüfen geht auch nicht eindeutig, es gibt unterschiedlich lange Ortsvorwahlen und Telefonnummern mit verschiedenen Anzahlen von Ziffern.

    Außerdem kann man sowas auch umgehen, weil die Eingabe ja vom User abhängig ist. Wenn du Angst vor Spambots hast, wirst du hier im Forum viele Lösungen finden.

    MfG,

    Christian