Live Brilliant

국내,외국인 등록번호 체크 본문

개발은 핵찜이야/ASP

국내,외국인 등록번호 체크

주인정 2012. 4. 17. 10:35

실명인증 서비스를 이용중이던 아니던

그전에 주민번호 유효성 검사를 통해 비용을 절약하자

 If Not checkResNo(resNo1, resNo2) Then Call jsmsg("유효한 주민등록번호가 아닙니다.", "B")If Not checkResfg(resNo1, resNo2) Then Call jsmsg("유효한 주민등록번호가 아닙니다.", "B")

' ######################################################################
' Function name : checkResNo
' Parameter :
' resno1 = 주민등록번호 앞자리
' resno2 = 주민등록번호 뒷자리
' Return : Boolean
' Description : 주민등록번호 유효성 확인
' ######################################################################
Function checkResNo(ByVal resno1, ByVal resno2)
Dim resno
Dim arrKey
Dim total, result
Dim f

checkResNo = False

total = 0
resno = resno1 & resno2

If Len(resno) <> 13 Then Exit Function

arrKey = Array(2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5)
For f=1 To 12
total = total + (CInt(Mid(resno, f, 1)) * arrKey(f - 1))
Next

result = (11 - (total Mod 11)) Mod 10

If CStr(result) = Mid(resno, 13, 1) Then checkResNo = True
End Function

' ######################################################################
' Function name : checkResfg
' Parameter :
' resno1 = 외국인등록번호 앞자리
' resno2 = 외국인등록번호 뒷자리
' Return : Boolean
' Description : 외국인등록번호 유효성 확인
' ######################################################################
Function checkResfg(ByVal resno1, ByVal resno2)

Dim resno
Dim total, result
Dim f

checkResfg = False

total = 0
resno = resno1 & resno2

If Len(resno) <> 13 Then Exit Function

odd = CInt(Mid(resno,8, 1))*10 + CInt(Mid(resno,9, 1))

if ((odd Mod 2) <> 0) Then Exit Function


IF ( (CInt(Mid(resno, 12, 1)) <> 6) and (CInt(Mid(resno, 12, 1)) <> 7) and (CInt(Mid(resno, 12, 1)) <> 8) and (CInt(Mid(resno, 12, 1)) <> 9) ) Then Exit Function


arrKey= array(2,3,4,5,6,7,8,9,2,3,4,5)

For f=1 To 12
total = total + (CInt(Mid(resno, f, 1)) * arrKey(f - 1))

Next


result = ( (11 - (total Mod 11) ) Mod 10 + 2) mod 10

if CStr(result) = Mid(resno, 13, 1) Then checkResfg = True

End Function

 

Comments