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实现图象锐化代码
Jun 14 PHP
PHP array 的加法操作代码
Jul 24 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
PHP不用递归实现无限分级的例子分享
Apr 18 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 PHP
phpstorm激活码2020附使用详细教程
Sep 25 PHP
PHP时间类完整代码实例
Feb 26 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
php cookie 详解使用实例
2016/11/03 PHP
利用php生成验证码
2017/02/23 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
js 覆盖和重载 函数
2009/09/25 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
从0开始学Vue
2016/10/27 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
Python中条件判断语句的简单使用方法
2015/08/21 Python
21行Python代码实现拼写检查器
2016/01/25 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
Python logging模块原理解析及应用
2020/08/13 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
Java如何格式化日期
2012/08/07 面试题
项目专员岗位职责
2013/12/04 职场文书
红旗方阵解说词
2014/02/12 职场文书
行政人事岗位职责
2014/03/17 职场文书
寄语学生的话
2014/04/10 职场文书
小学社会实践活动总结
2014/07/03 职场文书
硕士学位论文评语
2014/12/31 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
学校教学管理制度
2015/08/06 职场文书