Formátovanie telefónneho čísla

Občas sa vo webových projektoch stretneme so zadávaním telefónneho čísla. Ak ho chceme následne vypísať na stránke, často vyzerá inak usporiadané, ako by sme si predstavovali. Je to spôsobené tým, že každý užívateľ svoje číslo napíše v inom formáte. Niekto oddeľuje medzerami, ďalší medzery nepoužije, ale dá pomlčku (prípadne lomítko) medzi predvoľbu a číslo.

Pre docielenie rovnakého formátu zápisu telefónneho čísla využívam nasledujúcu funkciu.

function formatTel($tel) {
    // vyhadzanie neplatnych znakov z cisla
    $tel = preg_replace('/[^0-9+]/','',$tel);

    // nahrada uvodnej "00" za "+"
    $tel = preg_replace('/^00/','+',$tel);

    // ak je +421 tak moze byt 0 (narodne cislo)
    $tel = preg_replace('/^\+421/', '0', $tel);

    // 09xx - standardne mobilne cisla
    $tel = preg_replace('/(^09[0-9]{2})([0-9]{3})/','$1 $2 ',$tel);

    // 0[3,4,5,6,7] - pevne linky (okrem BA)
    $tel = preg_replace('/(^0[34567][0-9]{1})([0-9]{3})/','$1 $2 ',$tel);

    // pevne linky BA
    $tel = preg_replace('/(^0[2])([0-9]{4})/','$1 $2 ',$tel);
    return $tel;
}

Funkcia prevedie číslo do tvaru 09xx yyy zzz, 02 aaa bbb, 043 xxx yyyy. Je vytvorená pre zápis čísel v číselnej množine používanej v SR.