주민번호 및 사업자번호 검증 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

주민번호 및 사업자번호 검증 정보

기타 주민번호 및 사업자번호 검증

본문

'======================================================
'                                              주민번호 검증 함수
'======================================================
Public Function IsJuminNum(ByVal strJuminNum As String) As Boolean
  Dim iSum As Integer
  Dim iRe As Integer
   
  On Error GoTo Wrong_Number
 
  strJuminNum = Char_Remove(strJuminNum)
 
  If Len(strJuminNum) <> 13 Then
      IsJuminNum = False
      Exit Function
  End If
  If CInt(Mid(strJuminNum, 3, 2)) < 0 Or CInt(Mid(strJuminNum, 3, 2)) > 12 Or _
      CInt(Mid(strJuminNum, 5, 2)) < 0 Or CInt(Mid(strJuminNum, 5, 2)) > 31 Or _
      CInt(Mid(strJuminNum, 7, 1)) < 0 Or CInt(Mid(strJuminNum, 7, 1)) > 4 Then
        IsJuminNum = False
        Exit Function
  End If
  iSum = CInt(Mid(strJuminNum, 1, 1)) * 2 + _
          CInt(Mid(strJuminNum, 2, 1)) * 3 + _
          CInt(Mid(strJuminNum, 3, 1)) * 4 + _
          CInt(Mid(strJuminNum, 4, 1)) * 5 + _
          CInt(Mid(strJuminNum, 5, 1)) * 6 + _
          CInt(Mid(strJuminNum, 6, 1)) * 7 + _
          CInt(Mid(strJuminNum, 7, 1)) * 8 + _
          CInt(Mid(strJuminNum, 8, 1)) * 9 + _
          CInt(Mid(strJuminNum, 9, 1)) * 2 + _
          CInt(Mid(strJuminNum, 10, 1)) * 3 + _
          CInt(Mid(strJuminNum, 11, 1)) * 4 + _
          CInt(Mid(strJuminNum, 12, 1)) * 5

  iSum = iSum Mod 11
  iRe = 11 - iSum
  If iRe > 9 Then
      iRe = iRe Mod 10
  End If

  iSum = CInt(Mid(strJuminNum, 13, 1))

  If iSum = iRe Then
      IsJuminNum = True
  Else
      IsJuminNum = False
  End If
  Exit Function
Wrong_Number:
  IsJuminNum = False
End Function


'======================================================
'                                              사업자번호 검증 함수
'======================================================
Public Function IsSaupjaNo(ByVal strSaupjaNo As String) As Boolean 
  Dim iSum As Integer
  Dim iRe As Integer

  On Error GoTo Wrong_Number
 
  strSaupjaNo = Char_Remove(strSaupjaNo)
 
  If Len(strSaupjaNo) <> 10 Then
      IsSaupjaNo = False
      Exit Function
  End If
  iSum = ((CInt(Mid(strSaupjaNo, 9, 1)) * 5) \ 10) + _
          ((CInt(Mid(strSaupjaNo, 9, 1)) * 5) Mod 10) + _
            CInt(Mid(strSaupjaNo, 1, 1)) + CInt(Mid(strSaupjaNo, 4, 1)) + CInt(Mid(strSaupjaNo, 7, 1)) + _
          (CInt(Mid(strSaupjaNo, 2, 1)) + CInt(Mid(strSaupjaNo, 5, 1)) + CInt(Mid(strSaupjaNo, 8, 1))) * 3 + _
          (CInt(Mid(strSaupjaNo, 3, 1)) + CInt(Mid(strSaupjaNo, 6, 1))) * 7
 
  iSum = iSum Mod 10
  If CInt(Mid(strSaupjaNo, 10, 1)) = ((10 - iSum) Mod 10) Then
      IsSaupjaNo = True
  Else
      IsSaupjaNo = False
  End If
  Exit Function
Wrong_Number:
  IsSaupjaNo = False
End Function<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 16:46:12 기타에서 이동 됨]</div>
추천
0

댓글 2개

전체 5,352
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT