身份证验证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 ...
随机推荐
- 第5章 MapReduce操作
目录 5.1 案例分析:单词计数 1.设计思路 2.程序源代码 3.程序解读 4.程序运行 5.2 案例分析:数据去重 1.设计思路 2.编写程序 3.程序解读 4.程序运行 5.3 案例分析:求平均 ...
- postgresql 日期类型处理实践
---- 日期+1 select date '2018-01-14' + integer '1'; 结果: 2018-01-15 ---- 日期+1 后 转 20180101 日期字符串 select ...
- 一分钟了解spark的调优
Tuning Spark 数据序列化 内存调优 内存管理概述 确定内存消耗 调整数据结构 序列化 RDD 存储 垃圾收集调整 其他注意事项 并行度水平 减少任务的内存使用 广播大的变量 数据本地化 概 ...
- 在hive中查询导入数据表时FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict
当我们出现这种情况时 FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least ...
- JavaScript事件及BOM和DOM
1. 事件 1.1 事件绑定 # 写在html元素中<button onclick="code..."></div># 把事件当做元素对象的方法btnEl ...
- C#调用大漠插件,发送QQ和微信消息
大漠插件就不过多介绍了,不知道的请查下百度.主要是讲解C#怎么调用大漠插件. 大漠插件提供了COM版本,C#直接点击引用,添加即可.然后注册下大漠插件到系统文件夹,注册代码如下: static str ...
- C# 浮点转时间
想了大半天实在想不出什么更适合文章的标题... 就现在这个标题,挺好- - 什么是浮点转时间呢? 今天写的一个计时功能,想来想去还是现在这种解决方案比较合适 先上一张图在来讲解比较明了 如图:赛车游戏 ...
- python爬虫实例大全
WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...
- 转:vue生命周期流程图
- 在使用Pipeline串联多个stage时model和非model的区别
train.csv数据: id,name,age,sex1,lyy,20,F2,rdd,20,M3,nyc,18,M4,mzy,10,M 数据读取: SparkSession spark = Spar ...