Php 南非移动电话号码格式化

Php 南非移动电话号码格式化,php,regex,mobile,Php,Regex,Mobile,我仍在尝试了解PHP中的preg_replace函数。如何将以下手机号码格式化为手机号码的标准27xxxxxxxxx 例如: 083-123-4678应该是27831234567 +278312345678应该是27831234567 起始编号必须全部为081、082、083、084或071、072、073、074,这样可以: function Number_SA($number) { $number = preg_replace(array('~[^0-9]~', '~^27~'),

我仍在尝试了解PHP中的preg_replace函数。如何将以下手机号码格式化为手机号码的标准27xxxxxxxxx

例如:

083-123-4678应该是27831234567 +278312345678应该是27831234567

起始编号必须全部为081、082、083、084或071、072、073、074,这样可以:

function Number_SA($number)
{
    $number = preg_replace(array('~[^0-9]~', '~^27~'), '', $number);

    if (preg_match('~^(?:07[1234]|08[1234])~', $number) > 0)
    {
        return sprintf('%d%s', 27, $number);
    }

    return false;
}
用法:

var_dump(Number_SA('083-123-4678'));    // 27831234567
var_dump(Number_SA('085-123-4678'));    // false
var_dump(Number_SA('+278312345678'));   // false (doesn't start with 083)
function Number_SA($numbers)
{
$number=preg_replace(数组(“~[^0-9]~”、“~^27~”、“$numbers”);
如果(preg_match('~^(?:07[1234]),$number)>0)
{
$output=sprintf(“%d%s”,27,$number);if((strlen($output)<12)|(strlen($output)>13)){返回false;}
else{return$output;}
}
elseif(preg_match(“~^(?:08[123458])~”,$number)>0)
{
$output=sprintf(“%d%s”,27,$number);if((strlen($output)<12)|(strlen($output)>13)){返回false;}
else{return$output;}
}
elseif(preg_match(“~^(?:01[123468])~”,$number)>0)
{
$output=sprintf(“%d%s”,27,$number);
如果((strlen($output)<12)|(strlen($output)>13)){返回false;}
else{return$output;}
}
elseif(preg_match(“~^(?:02[1])~”,$number)>0)
{
$output=sprintf(“%d%s”,27,$number);
如果((strlen($output)<12)|(strlen($output)>13)){返回false;}
else{return$output;}
}       
elseif(preg_match(“~^(?:03[1])~”,$number)>0)
{
$output=sprintf(“%d%s”,27,$number);
如果((strlen($output)<12)|(strlen($output)>13)){返回false;}
else{return$output;}
}  
elseif(preg_match(“~^(?:04[0134])~”,$number)>0)
{
$output=sprintf(“%d%s”,27,$number);
如果((strlen($output)<12)|(strlen($output)>13)){返回false;}
else{return$output;}
}  
elseif(preg_match(“~^(?:05[17])~”,$number)>0)
{
$output=sprintf(“%d%s”,27,$number);
如果((strlen($output)<12)|(strlen($output)>13)){返回false;}
else{return$output;}
}  
else{return false;}
返回false;
}
$phoneno=array();
阵列推送($phoneno,(数字_SA('083-313-2605'))//真的
阵列推送($phoneno,(数字_SA('067-313-26055'))//假的
阵列推送($phoneno,(数字_SA('021-313-260'))//假的
阵列推送($phoneno,(数字_SA('0211-313-8903'))//真的
foreach($phoneno作为$number){
如果($number==“”){echo“电话号码为空”。
;} 否则{echo“这是有效的:“.$number.”
“;}”
>081、082、083、084或071、072、073、074假设仅以*[7 | 8][1 | 2 | 3 | 4]开头是一个愚蠢的想法,因为使用ATA您将拥有新的数字。此外,还有078,你是不是饮食。
    function Number_SA($numbers)
{
$number = preg_replace(array('~[^0-9]~', '~^27~'), '', $numbers);

    if (preg_match('~^(?:07[1234])~', $number) > 0)
    {
        $output= sprintf('%d%s', 27, $number);if ((strlen($output) < 12)| (strlen($output) > 13)){ return false;}
         else{return $output;}

    }
    elseif (preg_match('~^(?:08[123458])~', $number) > 0)
    {
        $output= sprintf('%d%s', 27, $number);if ((strlen($output) < 12)| (strlen($output) > 13)){ return false;}
         else{return $output;}

    }
    elseif (preg_match('~^(?:01[123468])~', $number) > 0)
    {
        $output= sprintf('%d%s', 27, $number);
        if ((strlen($output) < 12)| (strlen($output) > 13)){ return false;}
         else{return $output;}

    }
    elseif (preg_match('~^(?:02[1])~', $number) > 0)
    {
        $output= sprintf('%d%s', 27, $number);

         if ((strlen($output) < 12)| (strlen($output) > 13)){ return false;}
         else{return $output;}

    }       
    elseif (preg_match('~^(?:03[1])~', $number) > 0)
    {
        $output= sprintf('%d%s', 27, $number);
        if ((strlen($output) < 12)| (strlen($output) > 13)){ return false;}
         else{return $output;}

    }  
    elseif (preg_match('~^(?:04[0134])~', $number) > 0)
    {
        $output= sprintf('%d%s', 27, $number);
        if ((strlen($output) < 12)| (strlen($output) > 13)){ return false;}
         else{return $output;}

    }  
    elseif (preg_match('~^(?:05[17])~', $number) > 0)
    {
        $output= sprintf('%d%s', 27, $number);
        if ((strlen($output) < 12)| (strlen($output) > 13)){ return false;}
        else{return $output;}

    }  
    else{return false;}

return false;
}


$phoneno=array();
array_push($phoneno,(Number_SA('083-313-2605'))); //true
array_push($phoneno,(Number_SA('067-313-26055')));//false
array_push($phoneno,(Number_SA('021-313-260'))); //false
array_push($phoneno,(Number_SA('0211-313-8903')));//true



foreach ($phoneno as $number){
if($number == ""){ echo "Phone Number is null"."<br/>";}
else{ echo "This is valid: ".$number."<br/>";}}