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 相关文章推荐
我的论坛源代码(一)
Oct 09 PHP
解析在zend Farmework下如何创立一个FORM表单
Jun 28 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
php获取错误信息的方法
Jul 17 PHP
Yii2简单实现多语言配置的方法
Jul 23 PHP
PHP文件操作详解
Dec 30 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
PHP绕过open_basedir限制操作文件的方法
Jun 10 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 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
simplehtmldom Doc api帮助文档
2012/03/26 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
JTrackBar水平拖动效果
2007/07/15 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
JS验证码实现代码
2017/09/14 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python matlibplot绘制3D图形
2018/07/02 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
基于python检查矩阵计算结果
2020/05/21 Python
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
贷款承诺书范文
2014/05/19 职场文书
大专生自荐书范文
2014/06/22 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang