js身份證號碼驗證

2021-09-01 15:06:35 字數 1798 閱讀 8566

15位或18位身份證號碼驗證例子:

/** 

* 身份證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

} /**

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

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

* @return

*/ function isvaliditybrithby18idcard(idcard18)else

} /**

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

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

* @return

*/ function isvaliditybrithby15idcard(idcard15)else

} //去掉字串頭尾空格

function trim(str)

js驗證身份證號碼

前面定義全域性變數 var checked if checked layer.close loading return 此方法為失去焦點事件 function iscardno 1 9 d 2 d 0 1 9 1 0 2 0 1 9 1 2 0 9 3 0 1 d 0 9xx 號碼規則校驗 if f...

js驗證身份證號碼

1 簡單的正規表示式 1 preg match d d dx id card 2 preg match d 18 19 20 d 01 d 0123 d d d x id card 3 preg match d d d x x id card 2 複雜並且嚴格一些的驗證 這個可以驗證15位和18位的...

身份證號碼驗證js

功能 驗證身份證號碼是否有效 提 示資訊 未輸入或輸入身份證號不正確!使用 validateidcard obj 返回 0,1,2,3 function validateidcard obj var isum 0 var info var stridno obj var idcardlength s...