js驗證解析身份證號

2021-08-26 16:55:27 字數 2431 閱讀 3196

idvalidate.js

/**

* 身份證15位編碼規則:dddddd yymmdd xx p

* dddddd:地區碼

* yymmdd: 出生年月日

* xx: 順序類編碼,無法確定

* p: 性別,奇數為男,偶數為女

* * 身份證18位編碼規則:dddddd yyyymmdd *** y

* dddddd:地區碼

* yyyymmdd: 出生年月日

* ***:順序類編碼,無法確定,奇數為男,偶數為女

* y: 校驗碼,該位數值可通過前17位計算獲得

* * 18位號碼加權因子為(從右到左) wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ]

* 驗證位 y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]

* 校驗位計算公式:y_p = mod( ∑(ai×wi),11 )

* i為身份證號碼從右往左數的 2...18 位; y_p為腳丫校驗碼所在校驗碼陣列位置

* */

var wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加權因子

var validecode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份證驗證位值.10代表x

function idcardvalidate(idcard) else if (idcard.length == 18) else

} else

} /**

* 判斷身份證號碼為18位時最後的驗證位是否正確

* @param a_idcard 身份證號碼陣列

* @return

*/ function istruevalidatecodeby18idcard(a_idcard)

for ( var i = 0; i < 17; i++)

valcodeposition = sum % 11;// 得到驗證碼所位置

if (a_idcard[17] == validecode[valcodeposition]) else

} /**

* 通過身份證判斷是男是女

* @param idcard 15/18位身份證號碼

* @return 'female'-女、'male'-男

*/ function maleorfemalbyidcard(idcard)else

}else if(idcard.length ==18)else

}else

// 可對傳入字元直接當作陣列來處理

// if(idcard.length==15)else

// }else if(idcard.length==18)else

// }else

} /**

* 驗證18位數身份證號碼中的生日是否是有效生日

* @param idcard 18位書身份證字串

* @return

*/ function isvaliditybrithby18idcard(idcard18)else

} /**

* 驗證15位數身份證號碼中的生日是否是有效生日

* @param idcard15 15位書身份證字串

* @return

*/ function isvaliditybrithby15idcard(idcard15)else

} //去掉字串頭尾空格

function trim(str)

function showbirthdayand***(idcard,***id,birhid)

else

birthdayvalue=birthdayvalue+'-'+val.charat(8)+val.charat(9)+'-'+val.charat(10)+val.charat(11);

if(parseint(val.charat(14)/2)*2!=val.charat(14))

else

document.getelementbyid(birhid).value=birthdayvalue;

}if(18==val.length)

else

document.getelementbyid(birhid).value=birthdayvalue;}}

// 18位身份證號最後一位校驗

function idcard(num)

// 求得x的y次方

function square(x,y)

html

js 身份證號驗證

function iscardid sid var isum 0 var info if d d x i.test sid return 身份證長度或格式錯誤 sid sid.replace x i,a if acity parseint sid.substr 0,2 null return 身份證...

身份證號驗證

原文 身份證號驗證 public static boolean isidnumber string idnumber 定義判別使用者身份證號的正規表示式 15位或者18位,最後一位可以為字母 string regularexpression 1 9 d 18 19 20 d 0 1 9 10 11 ...

身份證號驗證

身份證號組成 17位數字 1位校驗碼 位址碼 前六位 出生日期碼 第七位至第十位 順序碼 第十五位至十七位 對同年同月同日生的人便定的順序號,順序號奇數為男生,偶數為女生 檢驗碼 第十八位 0 9 x var acity function iscarid sid d x i.test sid ret...