js驗證15位或18位身份證

2022-03-22 05:17:51 字數 1750 閱讀 4704

本篇文章是本人在網上蒐集了一些驗證,然後又個人進行一定修改的關於身份證的驗證,歡迎修改指正。。。。。

function idcardvalidaterule(idcard) $)|(^\d([0-9]|x)$)/.test(idcard)))

//4.驗證前兩位城市編碼是否正確 

var acity = ;

if (acity[parseint(idcard.substr(0, 2))] == null)

//5.驗證出生日期和校驗位

if (validid15(idcard) || validid18(idcard))  else 

//身份證18位號碼驗證

function validid18(str) )(\d)(\d)(\d)(\d)([0-9]|x)$/);

//also re = /^(\d)(\d)(\d)(\d)(\d)([0-9]|x)$/;

arrsplit = str.match(re); //檢查生日日期是否正確 

if (arrsplit != null)

}else 

//2. 校驗位驗證

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

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 = str.charat(17).tolowercase();

if (ccheck != sjym)

return true;

}//身份證15位(1984-2004)身份驗證 

function validid15(str) )(\d)(\d)(\d)(\d)$/);

arrsplit = str.match(re); //檢查生日日期是否正確 

if (arrsplit != null)  else 

if (!yearmonthdayvalidate(arrsplit[2], arrsplit[3], arrsplit[4]))

} else 

return true;

}//出生日期的年月日驗證

function yearmonthdayvalidate(year, month, day)

//去掉字串兩端左右空格

function trim(strs)

}補充: 第一代居民身份證(15位)自2023年1月1日已經廢止停止使用了。

身份證15位公升18位

六位數字位址碼 八位數字出生日期碼 三位數字順序碼 順序碼的奇數分給男性,偶數分給女性 一位數字校驗碼 校驗碼是根據前面十七位數字碼,按照iso 7064 1983.mod 11 2校驗碼計算出來的檢驗碼 1 多了年數 第6位開始多了19表示完整的出生日期 2 多了最後一位校驗碼 ai wi mod...

js 身份證校驗 15位和18位

校驗身份證號碼 function checkidcardno checkobj 校驗身份證號碼 function verifyidcardno idcardno else if idno.length 18 if18idcardno idno return false 15位身份證,只有數字 fun...

15位身份證補全為18位身份證演算法

一 15位身份證和18位身份證號碼結構介紹 要進行身份證號碼的驗證,首先需要了解我國身份證號碼的編碼規則。我國身份證號碼多由若干位數字或者數字與字母混合組成。早期身份證由15位數字構成,這主要是在1980年以前發放的身份證,後來考慮到千年蟲問題,因為15位的身份證號碼只能為1900年1月1日到199...