600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php如何使用正则表达式来提取字符串中的手机号(实例)?

php如何使用正则表达式来提取字符串中的手机号(实例)?

时间:2020-08-29 01:38:52

相关推荐

php如何使用正则表达式来提取字符串中的手机号(实例)?

后端开发|php教程

表达式,php,提取

后端开发-php教程

PHP通过正则表达式提取字符串中的手机号并判断运营商,简单快速方便,能提取多个手机号。下面通过本文实例代码给大家详细介绍,需要的的朋友参考下吧

ecjia多商户版源码,vscode怎样设置搜索框,ubuntu查看驱动,tomcat7 插件,sqlite 还原,网页设计说明范文,网站数据库是谁提供,服务器如何开vps,jquery 进度插件,前端框架 开发,数学爬虫,php设置字符集,seo型网站,springboot提交冲突,微信浏览器 audio标签,新仿今日头条网站源码,网页游戏gm版,金融行业网站模板,二维码后台管理系统,微信抽奖页面开发,花店信息管理系统 c,一些php的小程序lzw

0. 简介

批量外链群发源码,vscode 清除配置,ubuntu如何查看串口信息,tomcat qt交互,sqlite3 异常,dede 插件开发,商业项目 web前端框架,梦见房顶上爬虫子,php redis使用,负面舆情seo,网站建设中模板,手机网页模板 html5,黑色网页模板,医疗小程序v5.9lzw

PHP通过正则表达式提取字符串中的手机号并判断运营商,简单快速方便,能提取多个手机号。

数字游戏安卓源码,ubuntu中下查看ip,tomcat5指定jdk,python怎么清理爬虫,php网站建设数据库软件,河源seo公司lzw

1. 代码

<?phpheader("content-type:text/plain;charset=utf-8");function findThePhoneNumbers($oldStr = ""){ // 检测字符串是否为空 $oldStr=trim($oldStr); $numbers = array(); if(empty($oldStr)){ return $numbers; } // 删除86-180640741122,0997-8611222之类的号码中间的减号(-) $strArr = explode("-", $oldStr); $newStr = $strArr[0]; for ($i=1; $i $value) { if(preg_match($cm,$value)){$nums[] = array("number" => $value, "type" => "中国移动"); }elseif(preg_match($cu,$value)){$nums[] = array("number" => $value, "type" => "中国联通"); }elseif(preg_match($ct,$value)){$nums[] = array("number" => $value, "type" => "中国电信"); }else{// 非法号码 } } $numbers["mobile"] = $nums; // 固定电话或小灵通的获取 $reg=/\D(0\d{10,12})\D/is;//匹配数字的正则表达式 preg_match_all($reg,$newStr,$result); $nums = array(); // * 大陆地区固定电话或小灵通 // * 区号:010,020,021,022,023,024,025,027,028,029 // * 号码:七位或八位 $phs = "/^0(10|2[0-5789]|\d{3})\d{7,8}$/"; foreach ($result[1] as $key => $value) { if(preg_match($phs, $value)){$nums[] = array("number" => $value, "type" => "固定电话或小灵通"); } else {// 非法 } } $numbers["landline"] = $nums; // 有可能是没有区号的固定电话的获取 $reg=/\D(\d{7,8})\D/is;//匹配数字的正则表达式 preg_match_all($reg,$newStr,$result); $nums = array(); foreach ($result[1] as $key => $value) { $nums[] = array("number" => $value, "type" => "没有区号的固定电话"); } $numbers["possible"] = $nums; // 返回最终数组 return $numbers;}// 测试数据$str = "this(8625010) is a number, and the another is here(09978625000) ,the phone number is 18064074452 and 13899555555。这是中文,这里有个13239323232的手机号,还有一个188779988441这是12位8613322114455的。这里又是一个手机号86-18064074455。还有一个区号分开写的0997-8625001hahaha";$nums = findThePhoneNumbers($str);print_r($nums);

2. 测试结果

Array( [mobile] => Array ([0] => Array ([number] => 18064074452[type] => 中国电信 )[1] => Array ([number] => 13899555555[type] => 中国移动 )[2] => Array ([number] => 13239323232[type] => 中国联通 )[3] => Array ([number] => 13322114455[type] => 中国电信 )[4] => Array ([number] => 18064074455[type] => 中国电信 ) ) [landline] => Array ([0] => Array ([number] => 09978625000[type] => 固定电话或小灵通 )[1] => Array ([number] => 09978625001[type] => 固定电话或小灵通 ) ) [possible] => Array ([0] => Array ([number] => 8625010[type] => 没有区号的固定电话 ) ))

3. 结果解析

mobile 移动电话号码landline 固定电话或者小灵通possible 可能是没有区号的固定电话

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。