js 第二代身份證號碼的驗證機(jī)制代碼
更新時間:2011年05月12日 23:03:49 作者:
在盛大某網(wǎng)站注冊的時候,身份證必填,但我又不想填真實身份證號碼,于是隨便編了串自認(rèn)為合法的身份證號碼,但是卻馬上被提示號碼錯誤
由于響應(yīng)速度極快,可以肯定不是聯(lián)機(jī)校驗正確性的,那也就是說第二代身份證除了大家都知道的幾位表示生日和性別的規(guī)則以外,還有另外的自我校驗規(guī)則。于是翻開頁面源碼查看,發(fā)現(xiàn)這段js沒有被壓縮,所以規(guī)則也很好懂。
就在這里給大家科普下,不知道是不是火星了,呵呵。
以下代碼來自這里,版權(quán)歸盛大。當(dāng)然,你也可以在維基百科找到更詳細(xì)的介紹和算法。
iW = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
iSum = 0;
for( i=0;i<17;i++){
iC = v_card.charAt(i) ;
iVal = parseInt(iC);
iSum += iVal * iW[i];
}
iJYM = iSum % 11;
var sJYM = '';
if(iJYM == 0) sJYM = "1";
else if(iJYM == 1) sJYM = "0";
else if(iJYM == 2) sJYM = "x";
else if(iJYM == 3) sJYM = "9";
else if(iJYM == 4) sJYM = "8";
else if(iJYM == 5) sJYM = "7";
else if(iJYM == 6) sJYM = "6";
else if(iJYM == 7) sJYM = "5";
else if(iJYM == 8) sJYM = "4";
else if(iJYM == 9) sJYM = "3";
else if(iJYM == 10) sJYM = "2";
var cCheck = v_card.charAt(17).toLowerCase();
if( cCheck != sJYM ){
return false; //對不上就是假號碼
}
就在這里給大家科普下,不知道是不是火星了,呵呵。
以下代碼來自這里,版權(quán)歸盛大。當(dāng)然,你也可以在維基百科找到更詳細(xì)的介紹和算法。
復(fù)制代碼 代碼如下:
iW = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
iSum = 0;
for( i=0;i<17;i++){
iC = v_card.charAt(i) ;
iVal = parseInt(iC);
iSum += iVal * iW[i];
}
iJYM = iSum % 11;
var sJYM = '';
if(iJYM == 0) sJYM = "1";
else if(iJYM == 1) sJYM = "0";
else if(iJYM == 2) sJYM = "x";
else if(iJYM == 3) sJYM = "9";
else if(iJYM == 4) sJYM = "8";
else if(iJYM == 5) sJYM = "7";
else if(iJYM == 6) sJYM = "6";
else if(iJYM == 7) sJYM = "5";
else if(iJYM == 8) sJYM = "4";
else if(iJYM == 9) sJYM = "3";
else if(iJYM == 10) sJYM = "2";
var cCheck = v_card.charAt(17).toLowerCase();
if( cCheck != sJYM ){
return false; //對不上就是假號碼
}
相關(guān)文章
Javascript中函數(shù)名.length屬性用法分析(對比arguments.length)
這篇文章主要介紹了Javascript中函數(shù)名.length屬性用法,結(jié)合實例形式簡單對比分析了與arguments.length屬性的用法區(qū)別,需要的朋友可以參考下2016-09-09js將日期格式轉(zhuǎn)換為YYYY-MM-DD HH:MM:SS
這篇文章主要介紹了js將日期格式轉(zhuǎn)換為YYYY-MM-DD HH:MM:SS,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09使用apply方法實現(xiàn)javascript中的對象繼承
javascript中的對象繼承的方法有很多,在接下來的文章中為大家介紹下使用apply方法是如何實現(xiàn)的2013-12-12微信小程序自定義組件傳值 頁面和組件相互傳數(shù)據(jù)操作示例
這篇文章主要介紹了微信小程序自定義組件傳值 頁面和組件相互傳數(shù)據(jù)操作,結(jié)合實例形式分析了微信小程序常見傳值操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-05-05