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进行MySQL删除记录操作代码
Jun 07 PHP
PHP Mysql编程之高级技巧
Aug 27 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
PHP QRCODE生成彩色二维码的方法
May 19 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
PHP实现页面静态化深入讲解
Mar 04 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
php可生成缩略图的文件上传类实例
2014/12/17 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
javascript 实现map集合
2015/04/03 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
vue获取当前激活路由的方法
2018/03/17 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python字符串处理之count()方法的使用
2015/05/18 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
大学毕业通用个人的求职信
2013/12/08 职场文书
即兴演讲稿
2014/01/04 职场文书
校园演讲稿汇总
2014/05/21 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
离婚财产分配协议书
2014/10/21 职场文书
现货白银电话营销话术
2015/05/29 职场文书
遗嘱范文
2015/08/07 职场文书
mysql查看表结构的三种方法总结
2022/07/07 MySQL