邢臺網站建設,邢臺系統開發
邢臺網站建設,邢臺網站制作,邢臺網絡公司,邢臺系統開發,邢臺網站設計,邢臺網頁制作
15081754822
網站首頁 網站建設 系統開發 系統開發知識 手機網站 外貿網站 網站維護 網站案例 選課系統 域名注冊 微信開發 行業交流 聯系我們
 
邢臺區縣網站建設
邢臺行業門戶網站建設
邢臺網站策劃
公司主營業務
  系統開發
網站建設
手機網站
網站案例
成品網站
網站維護
域名注冊
虛似主機
機房工程
弱電工程
視頻主持人
 
增值服務
 
SSL證書申請
微信小程序
 
關于我們
 
公司簡介
公司視頻
支付方式
人才招聘
企業文化
服務承諾
合作伙伴
下載中心
 
你所處的位置:首頁 - 建站課堂 - 驗證身份證號是否正確的代碼
驗證身份證號是否正確的代碼
發布日期:2020-4-21 9:08:55  瀏覽次數:24次

我們要驗證身份證號是否正確,就得先了解身份證號的含意。


身份證號都代表什么意思?


1、號碼的結構

公民身份號碼是特征組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。


2、地址碼(前六位數)

表示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼,按GB/T2260的規定執行。


3、出生日期碼(第七位至十四位)

表示編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日代碼之間不用分隔符。


4、順序碼(第十五位至十七位)

表示在同一地址碼所標識的區域范圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。


5、校驗碼(第十八位數)

(1)十七位數字本體碼加權求和公式

S = Sum(Ai * Wi), i = 0, ... , 16 ,先對前17位數字的權求和

Ai:表示第i位置上的身份證號碼數字值

Wi:表示第i位置上的加權因子

Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

(2)計算模

Y = mod(S, 11)

(3)通過模得到對應的校驗碼

Y: 0 1 2 3 4 5 6 7 8 9 10

校驗碼: 1 0 X 9 8 7 6 5 4 3 2


所以我們就可以大致寫一個函數來校驗是否正確了。


驗證身份證號ASP代碼函數如下


Function IDCheck(e)

IDCheck = true

arrVerifyCode = Split("1,0,x,9,8,7,6,5,4,3,2", ",")

Wi = Split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2", ",")

Checker = Split("1,9,8,7,6,5,4,3,2,1,1", ",")

If Len(e) < 15 Or Len(e) = 16 Or Len(e) = 17 Or Len(e) > 18 Then

'IDCheck= "身份證號共有 15 碼或18位"

IDCheck = False

Exit Function

End If

Dim Ai

If Len(e) = 18 Then

Ai = Mid(e, 1, 17)

ElseIf Len(e) = 15 Then

Ai = e

Ai = Left(Ai, 6) & "19" & Mid(Ai, 7, 9)

End If

If Not IsNumeric(Ai) Then

'IDCheck= "身份證除最后一位外,必須為數字!"

IDCheck = False

Exit Function

End If

Dim strYear, strMonth, strDay

strYear = CInt(Mid(Ai, 7, 4))

strMonth = CInt(Mid(Ai, 11, 2))

strDay = CInt(Mid(Ai, 13, 2))

BirthDay = Trim(strYear) + "-" + Trim(strMonth) + "-" + Trim(strDay)

If IsDate(BirthDay) Then

If DateDiff("yyyy",Now,BirthDay)<-140 or cdate(BirthDay)>date() Then

'IDCheck= "身份證輸入錯誤!"

IDCheck = False

Exit Function

End If

If strMonth > 12 Or strDay > 31 Then

IDCheck = False

'IDCheck= "身份證輸入錯誤!"

Exit Function

End If

Else

'IDCheck= "身份證輸入錯誤!"

IDCheck = False

Exit Function

End If

Dim i, TotalmulAiWi

For i = 0 To 16

TotalmulAiWi = TotalmulAiWi + CInt(Mid(Ai, i + 1, 1)) * Wi(i)

Next

Dim modvalue

modvalue = TotalmulAiWi Mod 11

Dim strVerifyCode

strVerifyCode = arrVerifyCode(modvalue)

Ai = Ai & strVerifyCode

'IDCheck = Ai

If Len(e) = 18 And e <> Ai Then

'IDCheck= "身份證號碼輸入錯誤!"

IDCheck = False

Exit Function

End If

End Function




作者:未知 上一條: sql 根據身份證號碼計算年齡
來源:互聯網 下一條: 身份證號碼和殘疾證號的區別
奧祥介紹 聯系我們
域名注冊 成品網站
成功案例 客戶服務
行業交流 支付方式
版權所有: © 2005-2015 邢臺奧祥網絡™
聯系電話:15081754822  15102693855
公司郵箱:[email protected] 《信息產業部備案 冀ICP備09043254號》
本站關鍵詞:邢臺網站建設 邢臺網站設計 河北邢臺網絡公司 邢臺網站制作公司 邢臺網站推廣、邢臺網站制作
網站統計:
非洲水晶赚钱吗 捕鱼大富翁鱼币换红包 配资炒股实力鑫牛配资 可买贵州十一选五的平台 炒股是怎么玩的 山西快乐10分钟开奖前三 急速赛车开奖 河北省11选五 内蒙古快3遗漏数据查询皖 广西11选5走趋图 极速快3走势分析