REPLACE und Regex?

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

  • REPLACE und Regex?

    Hi,

    Ich habe eine Telefonnummer und möchte nachsehen, ob diese Telefonnummer schon in der DB existiert. Dazu muss ich die Telefonnummern erst in ein einheitliches Format umwandeln, wie in folgendem Beispiel.

    $query = mysql_query("SELECT * FROM db_kunden WHERE REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(telefon,'(0)',''),'+43','0'),'0043','0'),'/',''),' ','') = '".$telefon."'");

    Es sollen also folgende Nummern als identisch erkannt werden:

    0043 123 / 456789
    +43 (0) 123 456 789
    0123 / 456789

    Probleme:

    0043 kann auch innnerhalb der Tel. - also nicth als Vorwahl - vorkommen. Hier müssen wohl RegEx her, nur finde ich keinen Weg, das umzusetzen.

    Wenn euch sonst noch Verbesserungsvorschläge einfallen - nur her damit

    Gruß,
    Syco
    [COLOR=darkblue].: 1+1=23 :.[/COLOR]

  • #2
    ^0043

    ^ weist auf den anfang des Strings hin. S. entsprechendes Tut.

    Kommentar


    • #3
      Re: REPLACE und Regex?

      Weil es mir immer sehr hilft, wenn jemand versucht meine Regexp's auszuhebeln, geb mal noch ein paar Beispiele. Was bei dir durch Beschränkungen der Eingabe nicht vorkommt, kannst du ja einfach überlesen.

      00000123456789000
      00123456789000-1
      +49(12345)6789-0049
      +0049/(12345)/(12345678/1)
      ichbinkeineNummer
      12345derRestistgeheim
      49.(12345).6789.0049

      Ansonsten würde ich Telefonnummer-Eingaben über mehrere Inputfelder machen. Die Landesvorwahl und Vorwahl über Selectboxen und die Rufnummer Längenbeschränkt und nur Ziffern.
      Zuletzt geändert von onemorenerd; 11.06.2005, 17:33.

      Kommentar


      • #4
        ^ weist auf den anfang des Strings hin. S. entsprechendes Tut.
        das ist mir wohl bekannt. aber gibt es ein Pendant zu preg_replace in SQL?

        @onemorenerd: Danke für die Anregungen.
        [COLOR=darkblue].: 1+1=23 :.[/COLOR]

        Kommentar


        • #5
          mir ist nur REGEXP bekannt.

          aber die überprüfung der adresse machst du doch ohnehin im PHP-Teil. Warum nicht auch das zusammensetzen?

          Vorallem, wenn man bedenkt, dass der Einsatz von str_replace wesentlich komfortabler ist, als REPLACE.

          Kommentar

          Lädt...
          X