JS嚴格校驗身份證號

2021-08-14 10:45:32 字數 1729 閱讀 9772

以下是根據身份證號碼編碼規則,使用js對其進行有效性驗證**:

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++)

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

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

}/**

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

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

* @return

*/function isvaliditybrithby18idcard(idcard18)else

}/**

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

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

* @return

*/function isvaliditybrithby15idcard(idcard15)else

}//去掉字串頭尾空格

function trim(str)

方法二: 以下是根據正規表示式:

//規則

hanzirule: function (name) $/;

if (!reg.test(name)) else

},identitycodevalid:function (code) ;

var tip = "";

var pass = true;

if (!code || !/^\d(18|19|20)?\d(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d(\d|x)$/i.test(code))

else if (!city[code.substr(0, 2)])

else

var last = parity[sum % 11];

if (parity[sum % 11] != code[17]) }}

//if (!pass) alert(tip);

return pass;

},

var name = this.ebname.string;

var id = this.ebid.string;

if(!this.hanzirule(name))

if(!this.identitycodevalid(id))

panel.getcomponent('tips').showtips('認證成功!');

js校驗身份證號

校驗身份證號是否正確 var vcity function identitycodevalid code 校驗長度,型別 if iscardno code false 檢查省份 if checkprovince code false 校驗生日 if checkbirthday code false ...

身份證號正則校驗

正則匹配身份證號 分為18位和15位 yyyy mm dd 375 0 十八位 yy mm dd 75 0 十五位 地區 1 9 d 地區 嚴格 1 6 1 9 50 d 補充重慶地區50 年的前兩位 18 19 23 d 1800 2399 年的後兩位 d 月份 0 1 9 10 11 12 天數...

身份證號校驗 前端

身份證號碼驗證規則 輸入身份證號碼 提交 如下 身份證號碼驗證規則 title script src script script function 18 19 20 d 0 1 9 10 11 12 0 2 1 9 10 20 30 31 d 0 9xx 先用正則判斷是否為正確的格式if partn...