php 国外手机号,php – 南非手机号码格式

我仍然试图在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"."
";}

else{ echo "This is valid: ".$number."
";}}

标签:php,regex,mobile

来源: https://codeday.me/bug/20190630/1340479.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值