道理很简单,知道手机号规则 进行正则判断就可以
移动: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卫通)
HTML页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<!DOCTYPE html> < html lang = "en" > < head > < title >手机号归属</ title > </ head > < body > < input type = "text" onblur = "mobile_check($(this).val())" > </ body > </ html > < script type = "text/javascript" src = "__ROOT__/Public/admin/lib/jquery/1.9.1/jquery.min.js" ></ script > //修改为自己的路径 < script > /* 移动: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卫通) */ var phone = ''; function mobile_check(phone){ if(phone.length !== 11){ alert('未检测到正确的手机号码'); return false; } $.ajax({ url:"__CONTROLLER__/phone_check", async:false, dataType:'json', type:'post', data:{phone:phone}, success:function(msg){ alert(msg); } }); } </ script > |
controller控制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/* *@param string $phone 手机号字符串 *@return 0中国移动,1中国联通 2中国电信 3未知 */ public function phone_check(){ if (IS_POST){ $phone = I( 'phone' ); $isChinaMobile = "/^134[0-8]\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|18[2-478])\d{8}$/" ; //移动方面最新答复 $isChinaUnion = "/^(?:13[0-2]|145|15[56]|176|18[56])\d{8}$/" ; //向联通微博确认并未回复 $isChinaTelcom = "/^(?:133|153|177|173|18[019])\d{8}$/" ; //1349号段 电信方面没给出答复,视作不存在 // $isOtherTelphone = "/^170([059])\\d{7}$/";//其他运营商 if (preg_match( $isChinaMobile , $phone )){ $this ->ajaxReturn( '中国移动' ); //0 } else if (preg_match( $isChinaUnion , $phone )){ $this ->ajaxReturn( '中国联通' ); //1 } else if (preg_match( $isChinaTelcom , $phone )){ $this ->ajaxReturn( '中国电信' ); //2 } else { $this ->ajaxReturn( '未知' ); //3 } } $this ->display(); } |
以上就是全部的实现代码了,需要的朋友可以参考一下