구체적인 코드는 다음과 같습니다.
1. javascript를 사용하여 확인합니다.
코드는 다음과 같습니다.
<%
함수 checkIDCard(idcard) '-1이 올바른 신분증이고, 그렇지 않으면 불법 신분증입니다.
Dim Y, JYM
Dim S, M
어두운 영역
영역 = "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 = 새 정규식
'영역 확인
If InStr(1, Area, Mid(idcard, 1, 2)) = 0 Then checkIDCard = 1: 함수 종료
'ID 번호 자리 및 형식 확인
사례 선택 Len(idcard)
사례 15
If ((CInt(Mid(idcard, 7, 2)) 1900) Mod 4 = 0 또는 ((CInt(Mid(idcard, 7, 2)) 1900) Mod 100 = 0 And (CInt(Mid(idcard, 7, 2)) 1900) Mod 4 = 0)) 그러면
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
사례 18
'//18자리 주민등록번호 감지
'//생년월일 합법성 검사
If ((CInt(Mid ( idcard, 7, 2)) 1900) Mod 4 = 0 또는 ((CInt(Mid(idcard, 7, 2)) 1900) Mod 100 = 0 및 (CInt(Mid(idcard, 7, 2)) 1900) Mod 4 = 0)) 그러면
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%> 🎜 >