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.MVC的模板标签系统(四)
Sep 05 PHP
真正面向对象编程:PHP5.01发布
Oct 09 PHP
社区(php&&mysql)二
Oct 09 PHP
网络资源
Oct 09 PHP
php 数组二分法查找函数代码
Feb 16 PHP
PHPEXCEL 使用小记
Jan 06 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
PHP临时文件的安全性分析
Jul 04 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
基于laravel Request的所有方法详解
Sep 29 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递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python中的列表知识点汇总
2015/04/14 Python
Python对文件操作知识汇总
2016/05/15 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python自动发微信监控报警
2019/09/06 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
Python绘制动态水球图过程详解
2020/06/03 Python
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
生日派对邀请函
2014/01/13 职场文书
医德考评自我评价
2014/09/14 职场文书
关于工作经历的证明书
2014/10/11 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
导游词之峨眉山
2019/12/16 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers