我仍然试图在PHP中使用preg_replace函数.如何将以下手机号码格式化为标准27xxxxxxxxx手机号码?
例如:
083-123-4678应为27831234567 ?278312345678应该是27831234567
起始编号必须为081,082,083,084或071,072,073,074 解决方法:
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/>";}}
(编辑:北几岛)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|