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