程序员人生 网站导航

php中手机号码验证的正则表达式

栏目:php教程时间:2013-11-19 23:09:14

收藏了二款手机号码验证的代码,一是前台用jquery验证再用后台php代码来验证手机号是否合法,希望对大家有用。

前端代码我使用jquery.validate.js,代码如下:

  1. <script type="text/javascrip">     
  2. $(document).ready(function() {     
  3.     $("#smForm").validate({     
  4.         rules: {     
  5.                 smMobilePhone: {     
  6.                     required: true,     
  7.                     digits:true,     
  8.                     range:[13000000000,18999999999]     
  9.                 }     
  10.         },     
  11.         messages: {     
  12.             smMobilePhone: {     
  13.                     required: "您没有填写手机号码",     
  14.                     digits: "手机号码格式不对",     
  15.                     range: "手机号长度或者格式不对",     
  16.                 }     
  17.         },     
  18.         preErrs : {     
  19.                  
  20.         }     
  21.     });     
  22. });     
  23. </script>   

这只是一个不精确的验证,只能大概验证到一个范围而已,所以重点还在后面。

PHP代码

  1. $mobilephone=trim($_POST["smMobilePhone"]);     
  2. //手机号码的正则验证     
  3. if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$mobilephone)){     
  4.     //验证通过     
  5.          
  6. }else{     
  7.     //手机号码格式不对     
  8.          
  9. }  

看实例:

  1. <?php  
  2. //正则表达式  
  3. $tel = "15558530459";//作者的手机号码,如果有疑问可以电话联系我,或者QQ联系我,我的QQ是mezongzi@qq.com  
  4. if(strlen($tel) == "11")  
  5. {  
  6. //上面部分判断长度是不是11位  
  7. $n = preg_match_all("/13[123569]{1}d{8}|15[1235689]d{8}|188d{8}/",$tel,$array);  
  8. /*接下来的正则表达式("/131,132,133,135,136,139开头随后跟着任意的8为数字 '|'(或者的意思) 
  9. * 151,152,153,156,158.159开头的跟着任意的8为数字  
  10. * 或者是188开头的再跟着任意的8为数字,匹配其中的任意一组就通过了  
  11. * /")*/ 
  12. var_dump($array); //看看是不是找到了,如果找到了,就会输出电话号码的  
  13. }else  
  14. {  
  15. echo "长度必须是11位";  
  16. }  
  17. /*  
  18. * 虽然看起来复杂点,清楚理解!  
  19. * 如果有更好的,可以贴出来,分享快乐!  
  20. * */  
  21. ?> 
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐