身份证号码格式验证

From: https://www.cnblogs.com/chenhaoyu/p/6189207.html

 

/*** 验证身份证号码真伪* @param $id* @return bool*/
function checkIDCard( $id )
{$id = strtoupper($id);$regx = '/(^\d{15}$)|(^\d{17}([0-9]|X)$)/';if(!preg_match($regx, $id))return false;$arr_split = [];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{$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;// 检验18位身份证的校验码是否正确// 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10$arr_int = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];$arr_ch = ['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;}return true;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue组件化通信之子向父传值

vue组件化通信之子向父传值 vue组件化通信之兄弟组件传值 vue中子向父传递消息一般使用$emit&#xff0c;方法比较简单&#xff0c;直接看代码 父组件 <template><div><childTest msgmyMsg></childTest>{{msg}}</div> </template><s…

冒泡排序 C#

主程序入口class Program{static void Main(string[] args){int[] iArrary new int[] { 1, 5, 13, 6, 10, 55, 99, 2, 87, 12, 34, 75, 33, 47 };//定义数组BubbleSorter sh new BubbleSorter();sh.Sort(iArrary);for (int m 0; m < iArrary.Length; m)//输出结果Console…

emacs 入门教程,菜单汉化,配置文件等杂乱文章

首先来一发ArchWiki的Emacs简体中文的入门教程 https://wiki.archlinux.org/index.php/Emacs_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 怎样设置&#xff0c;Emacs中文菜单&#xff1f; 把包内的3个文件丢到 emacs/share/emacs/site-lisp下面。 在&#xff5e;/ 建一个 .emacs的…

[JS] Invalid Date

一般mysql存储的时间字段格式是" YYYY-MM-DD hh:mi:ss"&#xff0c;即年月日之间是通过-分隔的。 偶然的情况下&#xff0c;发现这样的格式用在js时&#xff0c;在手机浏览器上运行会失败&#xff0c;但是在PC浏览器上却是OK的。 见代码&#xff1a; const st 201…

关于element框架的el-image点击后,页面出现卡死等情况的解决方式

当el-image标签被添加时&#xff0c;页面的body就会自动添加style属性 所以我们绑定一个点击事件删除样式就可以了 <el-image style"width: 100px; height: 100px" :src"scope.row.logo" fit"scale-down" click"cancelStyle()"/&…

JAVA学习笔记-Scanner的使用

因为Scanner并不属于Lang包中&#xff0c;所以要在程序代码的最开头&#xff0c;加上&#xff1a;import java.util.Scanner;来表示导入Scanner类。这样我们在接下来的代码中就可以使用Scanner了&#xff1b; Scanner的语法为&#xff1a; Scanner s new Scanner (System.in);…

从源代码角度看Struts2返回JSON数据的原理

2019独角兽企业重金招聘Python工程师标准>>> 前面一篇文章其实只是介绍了如何在Struts2中返回JSON数据到客户端的具体范例而无关其原理&#xff0c;内容与标题不符惹来标题党嫌疑确实是笔者发文不够严谨&#xff0c;目前已修改标题&#xff0c;与内容匹配。本文将从…

vue的slot作用域插槽使用案例

slot的使用场景&#xff1a;复用子组件的slot&#xff0c;且slot的内容不同 简单使用案例 子组件 <div><h1>子组件</h1><slot name"child" msg德玛西亚></slot></div>父组件 <HelloWorld><p slot-scopechild slot&qu…

杭州收集

http://www.19lou.com/forum-143-thread-14601357545637477-1-1.html 杭州地铁规划图转载于:https://www.cnblogs.com/qshting/p/6039241.html

CentOS安装Nagios网络监视工具

Nagios是一款开源的免费网络监视工具&#xff0c;能有效监控Windows、Linux和Unix的主机状态&#xff0c;交换机路由器等网络设置&#xff0c;打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员&#xff0c;在状态恢复后发出正常的邮件或短信通知。…

一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别

From:https://www.cnblogs.com/shuiyi/p/5277233.html 一、这四个方法的用处 1、用来编码和解码URI的 统一资源标识符&#xff0c;或叫做 URI&#xff0c;是用来标识互联网上的资源&#xff08;例如&#xff0c;网页或文件&#xff09;和怎样访问这些资源的传输协议&#xf…

关于axios请求报400如何获取报错信息

不废话&#xff0c;直接放代码 addGoods(product).then(res > {if (res.code 200) {this.$message.success("添加成功");this.handleFilter();} else {this.$message.error("添加失败");}}).catch(res > {console.log(res)console.log(res.respons…

炫酷弹窗效果制作

昨天在家看电视时&#xff0c;退出的时候发现了一个弹窗效果&#xff0c;整个背景模糊&#xff0c;觉得这样的效果好炫&#xff0c;要比纯色加透明度高大上好多&#xff0c;连续试了几个界面&#xff0c;最终确定效果由css实现的&#xff0c;于是今天一大早来到公司便赶紧搜索了…

Javascrip之匿名函数

前面讲过&#xff0c;定义函数的方式有两种&#xff1a;一种是函数声明&#xff0c;另一种是函数表达式。函数声明&#xff1a; 123function functionName(arg0,arg1,arg2){ //函数体 }关于函数声明,一个重要的特征就是函数声明提升&#xff0c;意思就是在执行代码之前会先读取…

vue组件化通信之兄弟组件传值

vue组件化通信之父向子传值 vue组件化通信之子向父传值 在vue中兄弟节点传值一般有两种方法&#xff1a;$parent和 $root&#xff0c; 建议使用前者 使用$parent **parent.vue** <template><div><childTest></childTest><anotherChildTest>&l…

解决 Tomcat 添加 Cookie 域名报错问题 : CookieProcessor

From: https://blog.csdn.net/liqing0013/article/details/86489802 解决 Tomcat 添加 Cookie 域名报错问题 : CookieProcessor 环境 报错情况 原因分析 解决办法 环境 Java 8 Tomcat 8.5 报错情况 抛出 IllegalArgumentException 具体信息如下&#xff1a;…

选择版本Win7系统VS2010下搭建qt开发环境

这几周一直在研究选择版本之类的问题,下午正好有机会和大家共享一下. win7下vs2010搭建qt环境总算成功了&#xff0c;在此分享一下。 最初选择了VS2012 qt-windows-opensource-5.0.2-msvc2012_64-x64-offline.exe &#xff0b; qt-vs-addin-1.2.1-opensource.exe 一路安装成功…

项目中常用正则(手机号、身份证、金额等)

包含0的正整数 /^([1-9]\d*|[0]{1,1})$/ 不包含0的正整数 /^[1-9]\d*$/ 金额。最多两位小数 /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/ 身份证验证 /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3…

升级到 Tomcat 8 后 Cookie 可能出现的问题

From: http://www.lichenliang.top/tomcat-8-invalid-character-cookie-value.html 问题场景 之前运行在 Tomcat 7 中的 Web 项目&#xff0c;当把 Tomcat 从 7 升级到 8.x 及更高版本后&#xff0c;用户登录失败&#xff0c;后台报异常&#xff1a; java.lang.IllegalArgume…

MySQL 主从同步故障处理-小记

今有运维同学反应&#xff0c;某业务主从复制&#xff08;一主两从&#xff09;延迟较大&#xff1b;MySQL master&#xff1a;5.0.82 Slave&#xff1a;5.0.88首先指出DB的数据量还是几十G的大小&#xff0c;网络没有问题&#xff0c;OS系统负载小&#xff0c;IO没有吃紧&…