我得到了一个带有一定数量电话号码(美国/加拿大/欧盟/亚洲)的excel列表,由于电话栏的格式不整齐,因此我需要解析该号码以使其成为可打印格式,例如:
(123)456-7890
以下列中可能列出了几种电话格式: (XX可以是任何国家/地区代码) -+ XX.98765-4321 -XX。(987)654-3210 -1.(987)654-3210 -+1。(987)654-3210 -1.987.654.3210(1234)(1234)(1234) -1.987.654.3210(1234)(1234) -1.987.654.3210(1234) -1.987.654.3210(123) -1.987.654.3210(12345) -9876543210#1234
作为上述示例电话格式,将删除前缀为ZipArchive
,+81
,45
,1
的数字,其中括号/括号内的最后一个数字为需要提取的扩展名。
+1
上面的函数可以通过输出解析数字,例如: 1.987.654.3210(1234)(1234)(1234)-> (987)654-3210 和扩展名 1234
如果数字带有前缀function reformat($phone){
$find = array('1.','+1');
$phone = str_replace($find,'',$phone);
$phone = preg_replace('/[^0-9]*/','',$phone);
$sArea = substr($phone,0,3);
$sPrefix = substr($phone,3,3);
$sNumber = substr($phone,6,4);
if(strlen($phone) > 10) $sExt = substr($phone, -4);
$phone = '('.$sArea.') '.$sPrefix.'-'.$sNumber;
$ext = ($sExt) ? (int)$sExt : null;
$data = array($phone, $ext);
return($data);
}
,+XX
或+XX.
,并带有扩展名XX.
或#1234
,则输出将不准确。
该函数是否有任何附加组件,以便可以从上述可能的输入中格式化好用的东西?