生活随笔
收集整理的這篇文章主要介紹了
.net mvc身份证验证
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
撰寫時間:2019年2月25日星期六
身份證驗證,這里這個驗證功能就是根據身份證號的組成進行判斷驗證:公民身份號碼是特征組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼,順序碼表示在同一地址碼所標識的區域范圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。.校驗碼根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼,通過對這些數字的判斷,然后就可以判斷當前輸入的這個身份證是什么地區的,哪年哪月哪日出生的,是男是男是女,是不是有效的身份證號,隨便打打一個格式正確的身份證也是會識別出來不是有效的身份證號。下面要說的主要就驗證身份證的性別,跟是否為有效身份證號。
兩個驗證,自動識別男女,如果不是真實有效的身份證號顯示不是有效的身份證。代碼如下:
//=================================== 判斷身份證性別 =====================================function showBirthday(val) {if (15 == val.length) { //15位身份證號碼if (parseInt(val.charAt(14) / 2) * 2 != val.charAt(14))document.all.Write_Sex.value = '男', $("#Sex").empty().append('男');elsedocument.all.Write_Sex.value = '女', $("#Sex").empty().append('女');}if (18 == val.length) { //18位身份證號碼if (parseInt(val.charAt(16) / 2) * 2 != val.charAt(16))document.all.Write_Sex.value = '男', $("#Sex").empty().append('男');elsedocument.all.Write_Sex.value = '女', $("#Sex").empty().append('女');if (val.charAt(17) != IDCard(val)) {$("#TS").html("不是有效身份證!");}else {//document.all.Write_IDNumber.style.backgroundColor = 'white';$("#TS").html("");}}if (15 != val.length && 18 != val.length) {$("#TS").html("不是有效身份證!");}if (0 == val.length) {$("#TS").html("");}if (RealNameCertificationID != 0) {if (15 == val.length) { //15位身份證號碼if (parseInt(val.charAt(14) / 2) * 2 != val.charAt(14))document.all.Sex.value = '男', $("#Sex").empty().append('男');elsedocument.all.Sex.value = '女', $("#Sex").empty().append('女');}if (18 == val.length) { //18位身份證號碼if (parseInt(val.charAt(16) / 2) * 2 != val.charAt(16))document.all.Sex.value = '男', $("#Sex").empty().append('男');elsedocument.all.Sex.value = '女', $("#Sex").empty().append('女');}}}//=================================== 18位身份證號最后一位校驗 =====================================function IDCard(Num) {if (Num.length != 18)return false;var x = 0;var y = ''; for (i = 18; i >= 2; i--)x = x + (square(2, (i - 1)) % 11) * parseInt(Num.charAt(19 - i - 1));x %= 11;y = 12 - x;if (x == 0)y = '1';if (x == 1)y = '0';if (x == 2)y = 'X';return y;}//=================================== 求得x的y次方 =====================================function square(x, y) {var i = 1;for (j = 1; j <= y; j++)i *= x;return i;}
這段代碼基本就是一些判斷,根據身份證的組成判斷,對身份證的驗證碼進行計算驗證。
如果需要識別地區的話自行根據需要判斷前六位數得出地區信息
總結
以上是生活随笔為你收集整理的.net mvc身份证验证的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。