php验证手机号码

这篇文章主要介绍了php验证手机号码的方法,验证手机号码通常利用php正则表达试验证了,手机号的规则是长度11位然后是13,15,18等等开头,这个我们只要加以分类规划并可实现完美手机号码验证正则了,需要的朋友可以参考下大家

这篇文章主要介绍了php验证手机号码的方法,验证手机号码通常利用php正则表达试验证了,手机号的规则是长度11位然后是13,15,18等等开头,这个我们只要加以分类规划并可实现完美手机号码验证正则了,需要的朋友可以参考下

大家都应该有这个常识,中国的手机号码都是以数字“1”开头,然后利用“0~9”10个数字组成的11位数字组合,那么我们的验证规则肯定要根据这个思路来写。
根据上面的简单思路,我们便可以写下以下的验证代码,代码如下:

<?php    //本代码仅仅是提供一些思路    //距离实际应用还有一些距离     $mobile = '15858588585';    //下面的1便是手机的第一位数字必须为数字1    //[0-9]指后面的数字均为0~9的数字    //{9}这中间的9指的是手机号码除了第一位数外,其他要重复10次,刚好就是11位数了    if(!preg_match('/^1([0-9]{9})/',$mobile)) exit('您的手机号码不正确');  ?>

但上面的代码显然是不够严谨的,因为这样,即使“18888888888”这样的手机号码也能通过验证了,因此我们还要对其进行更为严格的验证,在严格之前请让我们先来看看中国常见的手机号码前三位都有那些:
移动手机号码: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卫通)
那么根据上面的特征,我们就可以将代码修改成这样的规则了,代码如下:

<?php    function checkMobile($str)    {      $pattern = “/^(13|15)d{9}$/”;      if (preg_match($pattern,$str))      {        Return true;      }      else      {        Return false;      }    }   //调用函数   $str = checkMobile(“15800000001″);    if($str)    {    echo(“符合手机号码标准”);    }    else    {    echo(“不符合手机号码标准”);    }   ?>

上面只能骓13,15开头的,如果有新段就不行了,我们可加以修改,代码如下:

function is_mobile($str){  return preg_match("/^(((d{3}))|(d{3}-))?13d{9}$/", $str);  }

这样就可以验证所有的手机号码了,整个解析思路环环相扣,针对php验证手机号码进行详细分析,得出解决方法。

以上就是为大家分享的php验证手机号码的方法,希望对大家的学习有所帮助。

相关文章推荐:

1.深入理解PHP内核(二)之SAPI探究

2.在PHP中使用FastCGI解析漏洞及修复方案

3.php实现处理输入转义字符的代码

4.php实现点击可刷新验证码

5.PHP正则表达式之捕获组与非捕获组

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

今天在用php进行图片保存输出时候,图片一直显示错误,后面用调试模式下提示:Warning: Cannot modify header information - headers already sent by... 看了一些网上的方法也没解决,最后在php.ini配置output_buffering默认为4096就没有遇到这个错误了: o
ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有Header had all ready send by的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出.当然打开缓冲区的作用很多,只要
第一种方法:用php的strpos() 函数判断字符串中是否包含某字符串的方法 if(strpos(www.genban.org,genban) !== false){ echo 包含genban; }else{ echo 不包含genban; } 第二种 使用了explode 用explode进行判断PHP判断字符串的包含代码如下: ?php $name = 00
/u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字) /i 表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象) /s 表示将字符串视为单行来匹配
随机生成难点是在于如何避免碰撞,有人说用md5,GUID这些机制啊,当然可以,但是做为账号,看着有乱,而且生成位数也过长。 本方法只需要解决1秒内的并发碰撞就可以,因为固定头部采用的是unixtime时间,精确到秒,超过1秒,这个头部的时间肯定变化了。同时
根据移动、联通、电信的电话号码号段,实现一个简单的正则表达式来验证手机号码: // 手机号校验export function isPhoneNumber(phoneNum) { // let reg = /^[1][3,4,5,7,8,9][0-9]{9}$/; /* * 移动号码包括的号段:134/135/136/137,138,139; * 147/148(物