Telefonnummer prüfen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Telefonnummer prüfen

    Moin,

    ich such ne Möglichkeit, eine Telefonnummer auf ihre Schreibweise hin zu prüfen, sprich es soll erkannt werden ob die Telefonnummer im internationalen Format (+01 2345 6789) vorliegt oder nicht.

    Wie realisiere ich das am besten? Jemand nen Tipp für mich???

  • #2
    Definiere internationales Format !
    Kann ja mit + oder 00 oder je nach Land wo du dich befindest auch mit 1 oder wat auch immer anfangen.
    Ausserdem kannst du wohl kaum wissen wie Tel Nummern in den veschiedenen Ländern aufgebaut sind. Muss nicht gleich sein wie in D. Eine Tel Nummer mittels RegExp zu validieren dürfte ziemlich aufwendig sein.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Mit preg_match und dem passenden Regex (Regulären Ausdruck). Ein kleines Beispiel zur Veranschaulichung:
      PHP-Code:

      $num 
      '123';
      if (
      preg_match('/\d+/'$num)) {
         print 
      '\$num ist numerisch';
      } else {
         print 
      '\$num ist nicht numerisch';

      Reguläre Ausdrücke sind ein mächtiges Werkzeug und relativ mühsam zu lernen. Mehr dazu kannst du hier nachlesen.

      EDIT:
      Bitte beachten: der bbcode hat ein backslash vor dem d+ gefressen.
      Zuletzt geändert von Griecherus; 24.11.2006, 09:08.
      Nieder mit der Camel Case-Konvention

      Kommentar


      • #4
        Definieren? Ich hab doch extra als Beispiel (+01 2345 6789) angegeben.
        Genau in dem Format möchte ich das haben, da sich meine Nummern zu 99% auf Europe beziehen brauch ich mir um exotische Formate keine Gedanken machen....

        Kommentar


        • #5
          Genau in dem Format möchte ich das haben, da sich meine Nummern zu 99% auf Europe beziehen
          Dann rechnest du uns CH-ler nicht zu Europa. Wir haben als Nummern ohne Vorwahl nur 7 Stellen.
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Wie kommst du auf 7 Stellen?Aber mir ist grade die Lösung für mein Problem gekommen:
            1. explode auf Leerzeichen
            2. phone[0] muss mit 00 oder+ anfangen
            3. phone[1] muss mind 2 Stellen haben
            4. phone[2] muss mind. 3 Stellen haben

            Ich denke damit sollte ich das Problem umgehen, oder?

            Kommentar


            • #7
              Wie kommst du auf 7 Stellen
              z.B. durch 911 79 64 (wie gesagt ohne Vorwahl)

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Theoretisch schon. Ich halte es nur für zweckmäßiger, das ganze mit regulären Ausdrücken zu machen, da es nach dem exploden nicht reicht, nur die Zahl der Stellen zu überprüfen, sondern auch, ob es sich überhaupt um einen numerischen Wert handelt (man kann ja nie wissen). Außerdem halte ich es in deinem Beispiel für relativ unzuverlässig nach Leerzeichen zu exploden, da gerade bei einer Benutzereingabe nicht garantiert ist, dass jeder auch das von dir angenommene, optimale Format einhält.
                Nieder mit der Camel Case-Konvention

                Kommentar


                • #9
                  OK, das mit den nur Zahlen könnte man ja noch einbauen.
                  Der User bekommt ja nen Hinweis wenn das Format nicht stimmt und muss erneut eingeben/korrigiren.....

                  Kommentar


                  • #10
                    Und welchen Vorteil hat das Ganze gegenüber der Benutzung eines in deinem Beispiel ja noch relativ simplen Regexp, dass du es dir mühsamer und dem Benutzer eventuell ungemütlicher machst, als nötig?
                    Nieder mit der Camel Case-Konvention

                    Kommentar


                    • #11
                      probiers mal hiermit http://regexlib.com/REDetails.aspx?regexp_id=338
                      oder hiermit http://regexlib.com/REDetails.aspx?regexp_id=350

                      nur so noch als Ergänzung

                      gruß
                      Robert

                      Kommentar

                      Lädt...
                      X