Formatting Phone Numbers in PHP

前端 未结 20 2307
面向向阳花
面向向阳花 2020-11-28 19:39

I am working on an SMS app and need to be able to convert the sender\'s phone number from +11234567890 to 123-456-7890 so it can be compared to re

20条回答
  •  天涯浪人
    2020-11-28 19:56

    Here's a simple function for formatting phone numbers with 7 to 10 digits in a more European (or Swedish?) manner:

    function formatPhone($num) {
        $num = preg_replace('/[^0-9]/', '', $num);
        $len = strlen($num);
    
        if($len == 7) $num = preg_replace('/([0-9]{2})([0-9]{2})([0-9]{3})/', '$1 $2 $3', $num);
        elseif($len == 8) $num = preg_replace('/([0-9]{3})([0-9]{2})([0-9]{3})/', '$1 - $2 $3', $num);
        elseif($len == 9) $num = preg_replace('/([0-9]{3})([0-9]{2})([0-9]{2})([0-9]{2})/', '$1 - $2 $3 $4', $num);
        elseif($len == 10) $num = preg_replace('/([0-9]{3})([0-9]{2})([0-9]{2})([0-9]{3})/', '$1 - $2 $3 $4', $num);
    
        return $num;
    }
    

提交回复
热议问题