搜尋
首頁web前端js教程javascript或asp实现的判断身份证号码是否正确两种验证方法_javascript技巧

具体代码如下:

一、用javascript验证:

复制代码 代码如下:

<script> <BR>function checkIdcard(idcard){ <BR>var Errors=new Array( <BR>"验证通过!", <BR>"身份证号码位数不对!", <BR>"身份证号码出生日期超出范围或含有非法字符!", <BR>"身份证号码校验错误!", <BR>"身份证地区非法!" <BR>); <BR>var area={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:"国外"} <br><br>var idcard,Y,JYM; <BR>var S,M; <BR>var idcard_array = new Array(); <BR>idcard_array = idcard.split(""); <BR>//地区检验 <BR>if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4]; <BR>//身份号码位数及格式检验 <BR>switch(idcard.length){ <BR>case 15: <BR>if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){ <BR>ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性 <BR>} else { <BR>ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性 <BR>} <BR>if(ereg.test(idcard)) return Errors[0]; <BR>else return Errors[2]; <BR>break; <BR>case 18: <BR>//18位身份号码检测 <BR>//出生日期的合法性检查 <BR>//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9])) <BR>//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8])) <BR>if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){ <BR>ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式 <BR>} else { <BR>ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式 <BR>} <BR>if(ereg.test(idcard)){//测试出生日期的合法性 <BR>//计算校验位 <BR>S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 <BR>+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 <BR>+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 <BR>+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 <BR>+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 <BR>+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 <BR>+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 <BR>+ parseInt(idcard_array[7]) * 1 <BR>+ parseInt(idcard_array[8]) * 6 <BR>+ parseInt(idcard_array[9]) * 3 ; <BR>Y = S % 11; <BR>M = "F"; <BR>JYM = "10X98765432"; <BR>M = JYM.substr(Y,1);//判断校验位 <BR>if(M == idcard_array[17]) return Errors[0]; //检测ID的校验位 <BR>else return Errors[3]; <BR>} <BR>else return Errors[2]; <BR>break; <BR>default: <BR>return Errors[1]; <BR>break; <BR>} <br><br>} <BR>alert(checkIdcard("220183198808081610")) <BR></script>

二、通过asp代码验证:

复制代码 代码如下:

Function checkIDCard(idcard) '-1为正确的身份证,否则为非法身份证

Dim Y, JYM
Dim S, M

Dim area
area = "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"
Dim ereg
Set ereg = New regexp

'地区检验
If InStr(1, area, Mid(idcard, 1, 2)) = 0 Then checkIDCard = 1: Exit Function

'身份号码位数及格式检验
Select Case Len(idcard)
Case 15
If ((CInt(Mid(idcard, 7, 2)) + 1900) Mod 4 = 0 or ((CInt(Mid(idcard, 7, 2)) + 1900) Mod 100 = 0 And (CInt(Mid(idcard, 7, 2)) + 1900) Mod 4 = 0)) Then
ereg.Pattern = "^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$" ';//测试出生日期的合法性
Else
ereg.Pattern = "^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$" ';//测试出生日期的合法性
End If
If (ereg.test(idcard)) Then
checkIDCard = -1
Else
checkIDCard = 2
End If
Case 18
'//18位身份号码检测
'//出生日期的合法性检查
If ((CInt(Mid(idcard, 7, 2)) + 1900) Mod 4 = 0 or ((CInt(Mid(idcard, 7, 2)) + 1900) Mod 100 = 0 And (CInt(Mid(idcard, 7, 2)) + 1900) Mod 4 = 0)) Then
ereg.Pattern = "^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$" ';//闰年出生日期的合法性正则表达式
Else
ereg.Pattern = "^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$" ';//平年出生日期的合法性正则表达式
End If
If (ereg.test(idcard)) Then
'//计算校验位
S = (CInt(Mid(idcard, 0 + 1, 1)) + CInt(Mid(idcard, 10 + 1, 1))) * 7 _
+ (CInt(Mid(idcard, 1 + 1, 1)) + CInt(Mid(idcard, 11 + 1, 1))) * 9 _
+ (CInt(Mid(idcard, 2 + 1, 1)) + CInt(Mid(idcard, 12 + 1, 1))) * 10 _
+ (CInt(Mid(idcard, 3 + 1, 1)) + CInt(Mid(idcard, 13 + 1, 1))) * 5 _
+ (CInt(Mid(idcard, 4 + 1, 1)) + CInt(Mid(idcard, 14 + 1, 1))) * 8 _
+ (CInt(Mid(idcard, 5 + 1, 1)) + CInt(Mid(idcard, 15 + 1, 1))) * 4 _
+ (CInt(Mid(idcard, 6 + 1, 1)) + CInt(Mid(idcard, 16 + 1, 1))) * 2 _
+ CInt(Mid(idcard, 7 + 1, 1)) * 1 _
+ CInt(Mid(idcard, 8 + 1, 1)) * 6 _
+ CInt(Mid(idcard, 9 + 1, 1)) * 3
Y = S Mod 11
M = "F"
JYM = "10X98765432"
M = Mid(JYM, Y + 1, 1)

If (M = Mid(idcard, 17 + 1, 1)) Then checkIDCard = -1 Else checkIDCard = 3

Else
checkIDCard = 4
End If

Case Else
checkIDCard = Len(idcard)
End Select

End Function%>
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP邮件检测:判断邮件是否已发送成功。PHP邮件检测:判断邮件是否已发送成功。Sep 19, 2023 am 09:16 AM

PHP邮件检测:判断邮件是否已发送成功。在开发Web应用程序时,经常需要发送电子邮件来与用户进行沟通,无论是注册确认、密码重置还是发送通知,邮件功能都是不可或缺的一部分。但是,有时候我们无法确保邮件是否真正发送成功,因此我们需要进行邮件检测以及判断邮件是否已成功发送。本文将介绍如何使用PHP来实现这个功能。一、使用SMTP服务器发送邮件首先,我们需要使用SM

使用java的File.isDirectory()函数判断文件是否存在且为目录类型使用java的File.isDirectory()函数判断文件是否存在且为目录类型Jul 24, 2023 pm 06:57 PM

使用java的File.isDirectory()函数判断文件是否存在且为目录类型在Java编程中,经常会遇到需要判断一个文件是否存在且为目录类型的情况。Java提供了File类来操作文件和目录,其中的isDirectory()函数可以帮助我们判断一个文件是否是目录类型。File.isDirectory()函数是File类中的一个方法,其作用是判断当前Fil

如何使用Python正则表达式进行身份证号码提取如何使用Python正则表达式进行身份证号码提取Jun 22, 2023 am 10:35 AM

在数据处理的过程中,经常需要从文本中提取特定格式的信息。而身份证号码作为一种比较常见的个人信息,在数据处理中也经常被用到。使用Python正则表达式可以方便地提取身份证号码,并且还能对其进行一定的验证。身份证号码是由18位数字组成的,包含了身份证号码中的地区、出生年月日和校验码等信息。在Python中,我们可以使用re模块的正则表达式函数来提取身份证号码。首

使用java的Character.isDigit()函数判断字符是否为数字使用java的Character.isDigit()函数判断字符是否为数字Jul 27, 2023 am 09:32 AM

使用Java的Character.isDigit()函数判断字符是否为数字字符在计算机内部以ASCII码的形式表示,每个字符都有一个对应的ASCII码。其中,数字字符0到9分别对应的ASCII码值为48到57。要判断一个字符是否为数字,可以使用Java中的Character类提供的isDigit()方法进行判断。isDigit()方法是Character类的

PHP正则表达式验证输入字符串是否为身份证号码或护照号码格式PHP正则表达式验证输入字符串是否为身份证号码或护照号码格式Jun 24, 2023 pm 12:11 PM

身份证号码和护照号码是人们生活中常见的证件号码。在实现涉及到这些证件号码的功能时,经常需要对输入的号码进行格式验证,以确保其正确性。而在PHP中,使用正则表达式可以很好地实现这一功能,本文就介绍如何使用PHP正则表达式验证输入字符串是否为身份证号码或护照号码格式。一、身份证号码验证身份证号码是由18位数字和最后一位可能是字母(校验码)组成的,其格式如下:前6

PHP正则表达式验证身份证号码的生日信息PHP正则表达式验证身份证号码的生日信息Jun 24, 2023 pm 02:22 PM

身份证号码是我们日常生活中经常用到的一种身份证明工具,而其中包含的生日信息也是非常重要的。在使用PHP进行身份证号码验证时,我们常常需要判断其生日信息是否正确。本文将介绍如何使用PHP正则表达式验证身份证号码的生日信息。1、身份证号码的基本格式身份证号码是由18位数字和字母组成的字符串,其中最后一位可能是数字或者字母,可能是大写或者小写。前17位是身份证的主

如何用PHP正则表达式验证输入字符串是否为正确的身份证号码、护照号码或港澳通行证格式如何用PHP正则表达式验证输入字符串是否为正确的身份证号码、护照号码或港澳通行证格式Jun 24, 2023 am 10:36 AM

身份证、护照和港澳通行证号码都是重要的个人身份证明,为了保障个人信息安全,我们需要在系统中验证用户输入的证件号码是否符合规范格式。而PHP正则表达式是一个非常强大的工具,可以方便地实现这个目的。本文将介绍如何使用PHP正则表达式验证用户输入的身份证号码、护照号码和港澳通行证号码。一、身份证号码格式验证身份证号码是18位数字,在最后一位可能是数字或字母X。身份

如何使用Double类的isInfinite()方法判断一个数是否为无穷大如何使用Double类的isInfinite()方法判断一个数是否为无穷大Jul 24, 2023 am 10:10 AM

如何使用Double类的isInfinite()方法判断一个数是否为无穷大在Java中,Double类是用来表示浮点数的包装类。该类提供了一系列方法,可以方便地对浮点数进行操作。其中,isInfinite()方法就是用来判断一个浮点数是否为无穷大的方法。无穷大是指大到超出了浮点数所能表示的范围的正无穷和负无穷。在计算机中,浮点数的最大值可以通过Double类

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具