本方法主要用于国内身份证号码的验证,支持15位与最新的18位身份证号码。

function is_idcard( $id ){$id = strtoupper($id);$regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";$arr_split = array();if(!preg_match($regx, $id)){return FALSE;}//检查15位if(15==strlen($id)){$regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";@preg_match($regx, $id, $arr_split);//检查生日日期是否正确$dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];if(!strtotime($dtm_birth)){return FALSE;} else {return TRUE;}}else{           //检查18位$regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";@preg_match($regx, $id, $arr_split);$dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];//检查生日日期是否正确if(!strtotime($dtm_birth)){return FALSE;}else{//检验18位身份证的校验码是否正确。//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。$arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);$arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');$sign = 0;for ( $i = 0; $i < 17; $i++ ){$b = (int) $id{$i};$w = $arr_int[$i];$sign += $b * $w;}$n  = $sign % 11;$val_num = $arr_ch[$n];if ($val_num != substr($id,17, 1)){return FALSE;}else{return TRUE;}}}
}

国内身份证号码的验证相关推荐

  1. 身份证属地查询,国内身份证号码查询验证(酒店管理系统自动化)

    由于最近开发酒店管理系统需要自动填上客户的身份证属地.在网上找了许多数据库,都是旧版本的数据只有3600条左右.想尽量完美一下,就自己写了一机器人程序,自动抓数据(全国公民身份信息系统(NCIIS)) ...

  2. Js实现中国公民身份证号码有效性验证

    2019独角兽企业重金招聘Python工程师标准>>> 参考: Java实现中国公民身份证号码有效性验证 Php实现中国公民身份证号码有效性验证 本文将使用JavaScript实现中 ...

  3. 【JS】Js二代身份证号码正则验证

    Js二代身份证号码正则验证代码: export function checkIDCard(idcode) {// 加权因子var weight_factor = [7,9,10,5,8,4,2,1,6 ...

  4. VS2022身份证号码信息验证器

    (- -)功能说明: 要求:根据以下规则对身份证号码进行验证,运行效果如图3-7所示. (1)号码长度18 位. (2) 18位全是数字. (3)第7~ 10位是出生的年. (4)倒数第2位号码,奇数 ...

  5. 15位或18位长度身份证号码JS验证

    免责声明:身份证号为随机组合而成,不会涉及任何隐私泄密问题,也非现实生活中真实的身份证号码:身份证号码所属年龄均为18岁以上,均已通过校验. var IdNum1 = "3205831986 ...

  6. Jquery 对 身份证号码的验证 (15/18位)

    //欢迎验证.给予指正错误,从好多地方查来的资料修改的...已用本人身份证验证... 由于以前修改的问题无法验证带 X 的身份证号码,已修复!//为值添加0function Append_zore(t ...

  7. python 身份证号码有效性验证

    先声明以下代码不是全部原创,网上找了前辈的一些代码,经过自己的部分加工,有了如下的身份证有效性验证代码: #!/usr/bin/env python3 # -*- coding: utf-8 -*-i ...

  8. 前端对用户身份证号码进行验证以及模糊显示

    一. 需求 后台管理系统项目,展示用户传入身份证号码.现需要验证用户输入的身份证号码的真实性,以及对身份证号码进行模糊显示. 二. 代码验证 2.1 验证身份证号码的真实性 参考的这篇文章:https ...

  9. JAVA 身份证号码有效性验证

    本文转自:http://www.blogjava.net/zeroline/archive/2011/01/03/342227.html </pre><pre name=" ...

最新文章

  1. Crawler:基于BeautifulSoup库+requests库+伪装浏览器的方式实现爬取14年所有的福彩网页的福彩3D相关信息,并将其保存到Excel表格中
  2. Elastic Stack简介
  3. Docker镜像备份与迁移
  4. keras编写自定义的层
  5. 数字图像处理—美图秀秀:磨皮算法
  6. 网络攻防实验(连更)
  7. java fastjson 格式化_json的格式化展示(基于 fastjson)
  8. 手机端 js禁止页面滚动
  9. UML之独孤九剑总纲
  10. 【LeetCode 深度优先搜索专项】不同岛屿的数量 II(711)
  11. Android OkHttp是如何上位的?
  12. 终端命令-文件操作、编辑操作
  13. [论文学习笔记]01一种轮廓平行扫描算法【3D打印路径规划】
  14. 怎么用显卡计算_显卡性能的软件 3dmark怎么用
  15. 英语思维导图大全 非谓语(十二)
  16. 卡西欧计算机程序,卡西欧计算器编程计算示例
  17. 博客开张 - 来源 访问分析
  18. 引用 八卦象数疗法--六腑的生理、病理
  19. 有一个一维数组,存10个学生成绩,写一个函数求最高分,最低分,平均分
  20. Mysql 分表 垂直分割_图文解释 读写分离、垂直拆分、水平拆分、分库分表

热门文章

  1. vb.net 教程 3-2 窗体编程之窗体 1
  2. MySQL:尽量不要用存储过程封装业务逻辑
  3. EMOS 配置及优化
  4. STM32F207 USB复合设备
  5. CAN FD总线详细介绍
  6. 不爱科研,只为当大学老师而读博,这种做法对吗?
  7. JSPEL表达式MVC三层结构综合案例
  8. UBNT无线解决方案
  9. Java基础:Java八大基本数据类型
  10. 基于 YOLOv2 Tiny的车牌检测