php正则判断是否为合法身份证号的方法


Posted in PHP onMarch 16, 2017

本文实例讲述了php正则判断是否为合法身份证号的方法。分享给大家供大家参考,具体如下:

/**
 * 判断是否为合法的身份证号码
 * @param $mobile
 * @return int
 */
function isCreditNo($vStr){
 $vCity = array(
  '11','12','13','14','15','21','22',
  '23','31','32','33','34','35','36',
  '37','41','42','43','44','45','46',
  '50','51','52','53','54','61','62',
  '63','64','65','71','81','82','91'
 );
 if (!preg_match('/^([\d]{17}[xX\d]|[\d]{15})$/', $vStr)) return false;
 if (!in_array(substr($vStr, 0, 2), $vCity)) return false;
 $vStr = preg_replace('/[xX]$/i', 'a', $vStr);
 $vLength = strlen($vStr);
 if ($vLength == 18) {
  $vBirthday = substr($vStr, 6, 4) . '-' . substr($vStr, 10, 2) . '-' . substr($vStr, 12, 2);
 } else {
  $vBirthday = '19' . substr($vStr, 6, 2) . '-' . substr($vStr, 8, 2) . '-' . substr($vStr, 10, 2);
 }
 if (date('Y-m-d', strtotime($vBirthday)) != $vBirthday) return false;
 if ($vLength == 18) {
  $vSum = 0;
  for ($i = 17 ; $i >= 0 ; $i--) {
   $vSubStr = substr($vStr, 17 - $i, 1);
   $vSum += (pow(2, $i) % 11) * (($vSubStr == 'a') ? 10 : intval($vSubStr , 11));
  }
  if($vSum % 11 != 1) return false;
 }
 return true;
}
PHP 相关文章推荐
PHP中的串行化变量和序列化对象
Sep 05 PHP
用PHP读注册表
Oct 09 PHP
php中的时间处理
Oct 09 PHP
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
php 无限级 SelectTree 类
May 19 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 #PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 #PHP
Yii1.1中通过Sql查询进行的分页操作方法
Mar 16 #PHP
php生成无限栏目树
Mar 16 #PHP
CodeIgniter框架常见用法工作总结
Mar 16 #PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 #PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 #PHP
You might like
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
php简单的上传类分享
2016/05/15 PHP
PHP自定义多进制的方法
2016/11/03 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
python的dict判断key是否存在的方法
2020/12/09 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
董事长岗位职责
2013/11/30 职场文书
法警的竞聘演讲稿
2014/01/02 职场文书
绿化先进工作者事迹材料
2014/01/30 职场文书
会计学专业求职信
2014/07/17 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
高二数学教学反思
2016/02/18 职场文书
新员工入职感言范文!
2019/07/04 职场文书
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python