PART I 移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 联通:130、131、132、152、155、156、185、186 电信:133、153、180、189、(1349卫通) PART II 顺便记录一下其它电话号码方面的知识。 以前电信移动邮政还没有分家,邮电资源是邮电部(现信息产业部)统一调度的。在分配号段的时候,做了一些细致的规划,大体是这样: 10开头,电信服务号码,如103国际半自动挂号,108国际对方付费电话,1000电信服务中心,1001联通服务中心等等。 11开头,赋予特种服务号码,如110匪警,111电信内部测试,112报修,113、115国内人工长途挂号,114查号台,116国内人工长途查询,117报时,119火警等,12开头,赋予民用特殊号码,如120(医院),121(天气预报),122交通事故告警,126、127、128、129寻呼台(BP机时代)。 其他的特殊号段号码有: 16,声讯类,如160中国电信工人信息服务接入码,166语音信箱业务,167吉通计算机互联网业务接入码,168声讯服务,中国电信公众多媒体网接入码等 17,长途电话服务,如170国内长途全自动话费查询台,173国内立接制长途半自动挂号台,176国内长途半自动查询台,177国内长途半自动班长台,179IP语音服务接入码等 18,部分服务台,如180邮政服务,184邮政编码查询接入码,185国家邮xxx电话信息服务接入码,186移动服务中心,188固定电话交费台,189中国电信业务受理特服台等。 19,寻呼接入,191联通无线电人工寻呼接入码,192联通无线电自动寻呼接入码等等 20,30,电话卡服务 另外,8、9开头的号段部分也作电信及民用服务号码 以上号码均作分配,内容太多未详细列出,部分号码目前已经升级,如电信服务台,天气预报,邮政服务台等等。
PART III 有了PART I部分的知识我们就开始写规则了。代码符上 $db = new db(); $db->connect($db_config); //选择字段
$selectFields = 'mobile';
$rows = $db->row_select('fw_customer',$where,0,$selectFields,'id','ASC'); $regex = "/13[0-9]{9}|15[0|1|2|3|5|6|7|8|9]\d{8}|18[0|5|6|7|8|9]\d{8}/";
$mc=0;
if($rows){
foreach($rows as $row)
{
preg_match_all($regex,$row['mobile'], $phones);
if($phones){
for($i=0;$i<count($phones[0]);$i++){
echo $phones[0][$i] ."\r\n";
$mc++;
}
}
}
}
echo "共{$mc}号码OK!"; 以上是做了一个分析客户表中字段手机号码的提取和输出代码片断。
方法二: 验证一般是把web前端和php的后端结合起来的,前端一般用javascript验证,后端就用php了。 这个例子中我把前端和后端的代码都贴出来,方便以后查看。 前端代码我使用jquery.validate.js,代码如下:
JavaScript代码<script type="text/javascript"> $(document).ready(function() { $("#smForm").validate({ rules: { smMobilePhone: { required: true, digits:true, range:[13000000000,18999999999] } }, messages: { smMobilePhone: { required: "您没有填写手机号码", digits: "手机号码格式不对", range: "手机号长度或者格式不对", } }, preErrs : { } }); }); </script>
这只是一个不精确的验证,只能大概验证到一个范围而已,所以重点还在后面。 PHP代码 $mobilephone=trim($_POST["smMobilePhone"]); //手机号码的正则验证 if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$mobilephone)){ //验证通过 }else{ //手机号码格式不对 } 代码3如下
//----------------------------------------代码如下
$mail="13846455417";
//判断手机号码是否正确
if(eregi("^13[0-9]{9}|15[0-9]{9}$",$mail))
{
echo "OK";
}
else
{
echo "False";
}
//----------------------------------------代码如下
|