本文非原創(chuàng),只是綜合了兩三個(gè)文章整理在一起的。
我們要驗(yàn)證身份證號(hào)是否正確,就得先了解身份證號(hào)的含意。
身份證號(hào)都代表什么意思?
1、號(hào)碼的結(jié)構(gòu) 公民身份號(hào)碼是特征組合碼,由十七位數(shù)字本體碼和一位校驗(yàn)碼組成。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。
2、地址碼(前六位數(shù)) 表示編碼對(duì)象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼,按GB/T2260的規(guī)定執(zhí)行。
3、出生日期碼(第七位至十四位) 表示編碼對(duì)象出生的年、月、日,按GB/T7408的規(guī)定執(zhí)行,年、月、日代碼之間不用分隔符。
4、順序碼(第十五位至十七位) 表示在同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi),對(duì)同年、同月、同日出生的人編定的順序號(hào),順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性。
5、校驗(yàn)碼(第十八位數(shù)) (1)十七位數(shù)字本體碼加權(quán)求和公式 S = Sum(Ai * Wi), i = 0, ... , 16 ,先對(duì)前17位數(shù)字的權(quán)求和 Ai:表示第i位置上的身份證號(hào)碼數(shù)字值 Wi:表示第i位置上的加權(quán)因子 Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (2)計(jì)算模 Y = mod(S, 11) (3)通過模得到對(duì)應(yīng)的校驗(yàn)碼 Y: 0 1 2 3 4 5 6 7 8 9 10 校驗(yàn)碼: 1 0 X 9 8 7 6 5 4 3 2
所以我們就可以大致寫一個(gè)函數(shù)來校驗(yàn)是否正確了。
驗(yàn)證身份證號(hào)ASP代碼函數(shù)如下
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
另外,如果能結(jié)合用戶所填寫的地區(qū)、生日,做相關(guān)的校驗(yàn),那就更完美了�;緵]有辦法把這個(gè)號(hào)填錯(cuò)了。哈哈。除非是填別人的準(zhǔn)確信息和身份證號(hào),
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|