PHP解析电话号码成块

时间:2019-04-23 09:46:18

标签: php

我得到了一个带有一定数量电话号码(美国/加拿大/欧盟/亚洲)的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+81451的数字,其中括号/括号内的最后一个数字为需要提取的扩展名。

+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,则输出将不准确。

该函数是否有任何附加组件,以便可以从上述可能的输入中格式化好用的东西?

0 个答案:

没有答案