記錄乙個最嚴格的js身份證號碼驗證規則

2021-10-16 22:55:04 字數 1150 閱讀 6448

這不是乙個簡單的18位身份證正規表示式,這是包含計算規則的身份證號碼驗證**。

可以直接使用,返回的是 true 或 false 

/**

* 校驗身份證號碼有效性

* @param cardno 身份證號碼

* @param b (可選)出生日期,格式為:yyyy-mm-dd

* @param g (可選)性別,1為男,2為女

*/function _valididcard(cardno, b, g) )\d(((\d)(\d)(\d)(\d))|((\d)(\d)(\d)((\d)[x\d])))$/i);

if(re == null) return false;

if(re[1] >= area.length || area[re[1]] == "") return false;

if(re[2].length == 12) else

if(g && g != "" && (gender % 2 != g % 2)) return false;

if(b && b != "" && b != birthday) return false;

re = birthday.match(/^((19|20)\d)[-](\d)[-](\d)$/);

let year = re[1];

let month = re[3] * 1 - 1;

let day = re[4];

date = new date(year, month, day);

if(typeof date != "object" || date.getfullyear() != year || date.getmonth() != month || date.getdate() != day) return false;

let sum = 0;

for(let i = 0; i <= 16; i++)

ai += verify.charat(sum%11);

return (cardno.length == 15 || cardno.length == 18 && cardno == ai);

};

身份證號碼嚴格驗證

function iscardno num katex parse error undefined control sequence d at position 5 d 0 9 x test num 校驗位按照iso 7064 1983.mod 11 2的規定生成,x可以認為是數字10。下面分別分析...

身份證號碼驗證,超嚴格

身份證省的編碼 var vcity 檢查號碼是否符合規範,包括長度,型別 function iscardno card d d x if reg.test card false return true 取身份證前兩位,校驗省份 function checkprovince card return t...

JS校驗身份證號碼

function isidcardno num d 0 9 x test num 驗證前2位,城市符合 var acity if acity parseint num.substr 0,2 null alert 城市 acity parseint num.substr 0,2 下面分別分析出生日期和...