PHP 字符串找出手机号码

function findThePhoneNumbers($oldStr = ""){
    // 检测字符串是否为空
    $oldStr=trim("q{$oldStr}q");
    $numbers = array();
    if(empty($oldStr)){
        return $numbers;
    }
    $strArr = explode("-", $oldStr);
    $newStr = $strArr[0];
    for ($i=1; $i < count($strArr); $i++) {
        if (preg_match("/\d{2}$/", $newStr) && preg_match("/^\d{11}/", $strArr[$i])){
            $newStr .= $strArr[$i];
        } elseif (preg_match("/\d{3,4}$/", $newStr) && preg_match("/^\d{7,8}/", $strArr[$i])) {
            $newStr .= $strArr[$i];
        } else {
            $newStr .= "-".$strArr[$i];
        }
    }
    // 手机号的获取
    $reg='/\D(?:86)?(\d{11})\D/is';//匹配数字的正则表达式
    preg_match_all($reg,$newStr,$result);
    $nums = array();
    $common = '/^1[3-9]\d{9}$/';
    foreach ($result[1] as $key => $value) {
        if(preg_match($common,$value)){
            $nums[] = $value;
        }
    }
    // 返回最终数组
    return $nums;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容