程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> asp函數:居民身份證驗證的asp函數

asp函數:居民身份證驗證的asp函數

編輯:ASP技巧

剛才在網上看到一個居民身份證驗證ASP函數,感覺到在做用戶注冊的時候可以用到,於是就轉過來,以便大家到時候用到,方便使用。並且經過我的測試,完全沒有問題,測試結果是:
1、輸入錯誤的身份證號,程序會輸出相應的錯誤提示。
2、輸入正確的身份證號,程序會將這個身份證號直接輸出。
函數具體代碼如下:

vIEw source print? 01 <% 02 Function CheckCardId(e) 03 arrVerifyCode = Split("1,0,x,9,8,7,6,5,4,3,2"",") 04 Wi = Split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2"",") 05 Checker = Split("1,9,8,7,6,5,4,3,2,1,1"",") 06 If Len(e) < 15 Or Len(e) = 16 Or Len(e) = 17 Or Len(e) > 18 Then 07 CheckCardId= "身份證號共有 15 碼或18位" 08 Exit Function 09 End If 10 Dim Ai 11 If Len(e) = 18 Then 12 Ai = Mid(e, 1, 17) 13 ElseIf Len(e) = 15 Then 14 Ai = e 15 Ai = Left(Ai, 6) & "19" & Mid(Ai, 7, 9) 16 End If 17 If Not IsNumeric(Ai) Then 18 CheckCardId= "身份證除最後一位外,必須為數字!" 19 Exit Function 20 End If 21 Dim strYear, strMonth, strDay 22 strYear = CInt(Mid(Ai, 7, 4)) 23 strMonth = CInt(Mid(Ai, 11, 2)) 24 strDay = CInt(Mid(Ai, 13, 2)) 25 BirthDay = Trim(strYear) + "-" + Trim(strMonth) + "-" + Trim(strDay) 26 If IsDate(BirthDay) Then 27 If DateDiff("yyyy",Now,BirthDay) <-140 or cdate(BirthDay)> date() Then 28 CheckCardId= "身份證輸入錯誤!" 29 Exit Function 30 End If 31 If strMonth > 12 Or strDay > 31 Then 32 CheckCardId= "身份證輸入錯誤!" 33 Exit Function 34 End If 35 Else 36 CheckCardId= "身份證輸入錯誤!" 37 Exit Function 38 End If 39 Dim i, TotalmulAiWi 40 For i = 0 To 16 41 TotalmulAiWi = TotalmulAiWi + CInt(Mid(Ai, i + 1, 1)) * Wi(i) 42 Next 43 Dim modValue 44 modValue = TotalmulAiWi Mod 11 45 Dim strVerifyCode 46 strVerifyCode = arrVerifyCode(modValue) 47 Ai = Ai & strVerifyCode 48 CheckCardId = Ai 49 If Len(e) = 18 And e <> Ai Then 50 CheckCardId= "身份證號碼輸入錯誤!" 51 Exit Function 52 End If 53 End Function 54 response.write CheckCardId("528337194801020025") 55 %>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved