RegEx - Telefonummer Vorwahl

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

  • RegEx - Telefonummer Vorwahl

    Hallo,

    ich versuche zurzeit bisschen mich in regex einzuarbeiten. Hab hier mal ein Beispiel mit einigen Nummern (Österreich, Kroatien, Slowenien)...und versuche anhand preg_replace die Landesvorwahlen zu normalisieren (nach den Prinizp z.B +43699XXXXXXX)

    Ich würd gerne von euch hören ob man das auch in einer Funktionen lösen kann bzw. ob man es verbessern kann oder ob es überhaupt optimal ist. (Mit einer verständlichen erklärung bitte)

    Beispiel:
    Code:
    $mobiles = array(
                  '0664/11573**',
                  '004366445536**',
                  '0043699100602**',
                  '066423739**',
                  #'0316810**',
                  '0699-123-123-**',
                  '0650/970 96 **',
                  '+4366423739**',
                  '0664004373**',
                  '003851231231**',
                  '+38512313**',
                  '003861231132**'
                );
    Hier die Funktion:
    Code:
    $mobiles_new = array();
    foreach ($mobiles AS $mobile) {
      // cleanup
      $mobile = preg_replace('~[^0-9]~', '', $mobile);
      $mobile = preg_replace('~^0043|^43~', '+43', $mobile);
      $mobile = preg_replace('~^06~', '+436', $mobile);
      $mobile = preg_replace('~^00385|^385~', '+385', $mobile);
      $mobile = preg_replace('~^00386|^368~', '+368', $mobile);
      
      $mobiles_new[] = $mobile;
    }
    Ausgabe:
    Code:
    Array
    (
        [0] => +4366411573**
        [1] => +4366445536**
        [2] => +43699100602**
        [3] => +4366423739**
        [4] => +43699123123**
        [5] => +4365097096**
        [6] => +4366423739**
        [7] => +43664004373**
        [8] => +3851231231**
        [9] => +38512313**
        [10] => +3681231132**
    )
    Eigentlich funktoniert es sowie ich es haben will...

    Ps.: Eigentlich habe ich vorher garnicht gewusst wie ich das
    überhaupt machen kann, hab danach gesucht und mich einwenig
    darüber informiert....deswegen habe ich meine Frage gleich anders formatiert.

    Lg
    RKAN
    Zuletzt geändert von RKAN; 31.03.2011, 14:47.

  • #2
    wie wäre es mit

    mixed preg_replace_callback ( mixed $pattern , callback $callback , mixed $subject [, int $limit [, int &$count ]] )

    $pattern = '~^(\+{0,1}0{1,2}\d{1,3})~';

    $mobile = preg_replace($pattern, 'normalize_PhoneNumber', $mobile);

    und einer analyse innerhalb deiner callback Funktion?

    function normalize_PhoneNumber($match)
    {
    // if else oder switch
    }
    verantwortlich für Elygor - Das kostenlose Browserspiel

    Kommentar

    Lädt...
    X