份证号验证(兼容15,18位) ,注册验证的时候可以用上。
代码片段(1)
[代码] [PHP]代码
view source print?01
//比较菜鸟 第一次分享代码
02
//身份证号验证
03
protected
function
checkIdCard(){
04
if
(
empty
(
$_POST
[
'idcard'
])){
05
return
false;
06
}
07
$idcard
=
$_POST
[
'idcard'
];
08
$City
=
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=>
"国外"
);
09
$iSum
= 0;
10
$idCardLength
=
<code class="functions">strlen(
$idcard
);
11
//长度验证
12
if
(!preg_match(
'/^\d{17}(\d|x)$/i'
,
$idcard
)
and
!preg_match(
'/^\d{15}$/i'
,
$idcard
))
13
{
14
return
false;
15
}
16
//地区验证
17
if
(!
array_key_exists
(
intval
(
substr
(
$idcard
,0,2)),
$City
))
18
{
19
return
false;
20
}
21
// 15位身份证验证生日,转换为18位
22
if
(
$idCardLength
== 15)
23
{
24
$sBirthday
=
'19'
.
substr
(
$idcard
,6,2).
'-'
.
substr
(
$idcard
,8,2).
'-'
.
substr
(
$idcard
,10,2);
25
$d
=
new
DateTime(
$sBirthday
);
26
$dd
=
$d
->format(
'Y-m-d'
);
27
if
(
$sBirthday
!=
$dd
)
28
{
29
return
false;
30
}
31
$idcard
=
substr
(
$idcard
,0,6).
"19"
.
substr
(
$idcard
,6,9);
//15to18
32
$Bit18
= getVerifyBit(
$idcard
);
//算出第18位校验码
33
$idcard
=
$idcard
.
$Bit18
;
34
}
35
// 判断是否大于2078年,小于1900年
36
<code class="variable">$year =
substr
(
$idcard
,6,4);
37
if
(
<code class="variable">$year<code class="variable">$year
>2078 )
38
{
39
return
false;
40
}
41
42
//18位身份证处理
43
$sBirthday
=
substr
(
$idcard
,6,4).
'-'
.
substr
(
$idcard
,10,2).
'-'
.
substr
(
$idcard
,12,2);
44
$d
=
new
DateTime(
$sBirthday
);
45
$dd
=
$d
->format(
'Y-m-d'
);
46
if
(
$sBirthday
!=
$dd
)
47
{
48
return
false;
49
}
50
//身份证编码规范验证
51
$idcard_base
=
substr
(
$idcard
,0,17);
52
if
(
strtoupper
(
substr
(
$idcard
,17,1)) != getVerifyBit(
$idcard_base
))
53
{
54
return
false;
55
}
56
return
$_POST
[
'idcard'
];
57
}
58
59
// 计算身份证校验码,根据国家标准GB 11643-1999
60
function
getVerifyBit(
$idcard_base
)
61
{
62
if
(
<code class="functions">strlen(
$idcard_base
) != 17)
63
{
64
return
false;
65
}
66
//加权因子
67
$factor
=
array
(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
68
//校验码对应值
69
$verify_number_list
=
array
(
'1'
,
'0'
,
'X'
,
'9'
,
'8'
,
'7'
,
'6'
,
'5'
,
'4'
,
'3'
,
'2'
);
70
$checksum
= 0;
71
for
(
$i
= 0;
$i
<code class="functions">strlen
(
$idcard_base
);
$i
++)
72
{
73
$checksum
+=
substr
(
$idcard_base
,
$i
, 1) *
$factor
[
$i
];
74
}
75
$mod
=
$checksum
% 11;
76
$verify_number
=
$verify_number_list
[
$mod
];
77
return
$verify_number
;
78
}

Golang是一门高性能、现代化的编程语言,在日常开发中经常涉及到字符串的处理。其中,验证输入是否为大写字母是一个常见的需求。本文将介绍在Golang中如何验证输入是否为大写字母。方法一:使用unicode包Golang中的unicode包提供了一系列函数来判断字符的编码类型。对于大写字母,其对应的编码范围为65-90(十进制),因此我们可以使用unicod

在golang中,验证输入是否为全角字符需要用到Unicode编码和rune类型。Unicode编码是一种将字符集中的每个字符分配一个唯一的数字码位的字符编码标准,其中包含了全角字符和半角字符。而rune类型是golang中用于表示Unicode字符的类型。第一步,需要将输入转换为rune类型的切片。这可以通过使用golang的[]rune类型进行转换,例如

PHP是一种非常流行的编程语言,常用于Web开发。在PHP开发中,我们经常会遇到需要验证字符串的情况。其中,正则表达式是一种非常常用的方法。在对字符串进行验证时,我们经常需要验证字符串是否以特定字符或字符串开头或结尾。本文将介绍如何使用PHP正则表达式来验证字符串的开头或结尾。验证字符串开头在PHP中,通过正则表达式验证字符串开头,我们可以使用"^"符号来表

随着时代的发展,我们越来越注重对数据的校验,特别是对用户输入的校验。对于语言类的校验,如何准确判定输入是否全部为中文字符成为了一个重要问题。而在golang中,我们可以借助unicode包和regexp包来实现这一需求。一、unicode包unicode包提供了一系列对于unicode的核心支持。我们可以使用这个包中的函数来准确地判断一个字符是否为中文字符。

在现代网络世界中,网站的安全性以及用户隐私的保护越来越成为重要话题。其中,人机验证这一技术方法已经成为防范恶意攻击行为的不可或缺的方式之一。GooglereCAPTCHA,是一个被广泛应用于人机验证的工具,其概念已经深入人心,甚至在我们每天使用的许多网站上都能够看到其存在的身影。在本文中,我们将探讨如何在PHP中使用GooglereCAPTCHA进行验证

在PHP中,正则表达式可以用于验证和处理字符串。验证正整数的正则表达式如下所示:$pattern="/^[1-9]d*$/";其中,^表示开头,$表示结尾,[1-9]表示第一个字符必须是1-9之间的数字,d表示其他字符必须是数字,*表示0个或多个。因此,这个正则表达式可以匹配任意一个正整数。下面是一个完整的例子,演示如何使用正则表达式

手机号码验证登录注册的PHP实现指南一、概述手机号码验证是现代互联网应用中常见的功能之一,它不仅可以用于用户注册和登录验证,还可以用于短信验证码发送等场景。本文将介绍如何使用PHP语言实现手机号码验证登录注册功能。二、环境要求在开始编写代码之前,我们需要确保以下环境已经准备就绪:PHP环境:PHP的版本需达到5.6或以上。数据库:本文使用MySQL数据库作为

Go语言是一种快速、高效和强类型的编程语言,被广泛应用于网络服务开发、云计算、数据科学、互联网金融等领域。在Web应用开发中,输入验证是一个非常重要的问题,其中验证输入中的HTML标签是否有效是一个常见的需求。下面我们将介绍如何在Go语言中实现这一需求。HTML标签在Web页面中扮演着重要角色,它们定义了页面的结构、样式和交互行为。但在处理用户输入时,我们需


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境