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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
php addslashes 函数详细分析说明
Jun 23 PHP
php 魔术函数使用说明
Feb 21 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
Jan 14 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
Jan 09 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
PHP中FTP相关函数小结
Jul 15 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
PHP实现验证码校验功能
Nov 16 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 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
上传多个文件的PHP脚本
2006/11/26 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
js截取函数(indexOf,join等)
2010/09/01 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
python实现双色球随机选号
2020/01/01 Python
大学生个人推荐信范文
2013/11/25 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
知识竞赛主持词
2014/03/26 职场文书
高一学生评语大全
2014/04/25 职场文书
停车场管理协议书范本
2014/10/08 职场文书
刑事附带民事代理词
2015/05/25 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js