身份证验证php
/**
* 验证身份证号
* @param $vStr
* @return bool
*/
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的更多相关文章
- 身份证验证JS代码
身份证验证JS程序function checkidcardfun(code) { var city = {11: "北京", 12: "天津", 13: &qu ...
- java身份证验证
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- jQuery身份证验证插件
jQuery身份证验证插件 /*! * jQuery isIDCard Plugin v1.0.0 * http://www.cnblogs.com/cssfirefly/p/5629561.html ...
- java对身份证验证及正则表达式解析
原文地址:http://www.cnblogs.com/zhongshengzhen/ java对身份证验证及正则表达式解析 package service; import java.text.Par ...
- Jsp注册页面身份证验证
<!--身份证验证 --><script type="text/javascript">function isCardNo(Idcardnumber) { ...
- C#实现中国身份证验证问题
C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 今天写的 C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 理论部分: 1 ...
- 【NumberValidators】大陆身份证验证
需要说明的是这里的大陆身份证识别并不是公安局联网的识别,而是按国标GB 11643进行的验证,所以其验证结果只能说符合国标规范,但不能保证该身份证一定真实存在,如果你实际需求是希望身份证一定真实存在, ...
- Java正则表达式实现港、澳、台身份证验证
最近由于业务的要求,需要进行港.澳.台人员身份证验证,现在直接上代码,经供参考学习,也为自己积累一些工具类: package com.qiu.validate; public class regexV ...
- js邮箱验证,身份证验证,正则表达式
邮箱验证: html部分: 邮箱验证:<input type="text" id="mail" value="" / onkeyup= ...
- Java基础之身份证验证
//简约版package test; import java.util.Scanner; public class ID { /** * 匹配算法 : 1) 得到17位身份证号码与下面给出的17位 2 ...
随机推荐
- python中的rabbitmq
介绍 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议.MQ全称为Message Queue, 消息队列(MQ)是一种应用 ...
- Go 入门 - 方法和接口
方法和接口 方法的接受者 Go中没有类,取而代之的是在结构体上定义的方法 为了将方法(函数)绑定在某一类结构体上,我们在定义函数(方法)时引入"接受者"的概念. 方法接受者在它自己 ...
- Goland的常用快捷键
文件相关快捷键: CTRL+E,打开最近浏览过的文件. CTRL+SHIFT+E,打开最近更改的文件. CTRL+N,可以快速打开struct结构体. CTRL+SHIFT+N,可以快速打开文件. 代 ...
- 快排(golang实现) 递归方法
递归方法,逻辑简洁清晰.这个算法还是很重要的,需要重点记忆理解,面试经常考手写.据说是与傅里叶变换等并称“20世纪十大算法”.https://blog.csdn.net/v_JULY_v/articl ...
- lvs健康检查脚本第三版
如下是学习完马哥视频lvs后改写的健康检查脚本第三版.利用工作之余三四个小时时间才把整个逻辑搞清楚,有时候自己都有点蒙圈,尤其是在写到while循环的时候.总的来说非常感谢马哥的慷慨解囊!脚本原稿及思 ...
- JavaWeb——课程管理系统(2).java---18.11.29
DaoFactory.java package com.jaovo.msg.Util; import com.jaovo.msg.dao.UserDaoImpl; public class DaoFa ...
- MapWindow记录
增加MapWinGIS的新功能,编译完MapWinGIS,可以生成Debug和Release版本的x64和Win32四种版本, 自己基于c#的Mapwindow如果要用到新添加的功能,此时就得重新注册 ...
- 《图说VR入门》——googleVR入门
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52959035 作者:car ...
- 【转载】SOCKS代理:从***到内网漫游
原文:SOCKS代理:从***到内网漫游 本文原创作者:tahf,本文属FreeBuf原创奖励计划,未经许可禁止转载 之前在Freebuf上学习过很多大牛写的关于Tunnel.SOCKS代理.***等 ...
- Java:List判空的条件:List=null 和 List.size = 0
当需要对一个LIst进行判空操作时我们可使用如下两个语句: if (list == null || list.size() == 0) {} if (list != null && l ...