//這個可以驗證15位和18位的身份證,並且包含生日和校驗位的驗證。
//如果有興趣,還可以加上身份證所在地的驗證,就是前6位有些數字合法有些數字不合法。
function isidcardno(num)
num = num.touppercase();
//身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元x。
if (!(/(^\d$)|(^\d([0-9]|x)$)/.test(num)))
//校驗位按照iso 7064:1983.mod 11-2的規定生成,x可以認為是數字10。
//下面分別分析出生日期和校驗位
var len, re;
len = num.length;
if (len == 15) )(\d)(\d)(\d)(\d)$/);
var arrsplit = num.match(re);
//檢查生日日期是否正確
var dtmbirth = new date('19' + arrsplit[2] + '/' + arrsplit[3] + '/' + arrsplit[4]);
var bgoodday;
bgoodday = (dtmbirth.getyear() == number(arrsplit[2]))
&& ((dtmbirth.getmonth() + 1) == number(arrsplit[3]))
&& (dtmbirth.getdate() == number(arrsplit[4]));
if (!bgoodday) else
num += arrch[ntemp % 11];
return num;}}
if (len == 18) )(\d)(\d)(\d)(\d)([0-9]|x)$/);
var arrsplit = num.match(re);
//檢查生日日期是否正確
var dtmbirth = new date(arrsplit[2] + "/" + arrsplit[3] + "/" + arrsplit[4]);
var bgoodday;
bgoodday = (dtmbirth.getfullyear() == number(arrsplit[2]))
&& ((dtmbirth.getmonth() + 1) == number(arrsplit[3]))
&& (dtmbirth.getdate() == number(arrsplit[4]));
if (!bgoodday) else
valnum = arrch[ntemp % 11];
if (valnum != num.substr(17, 1))
return num;}}
return false;
}
身份證合法性驗證
2015年10月14日 16 42 22 從網上扒的,刪掉了一小段無用 修改了一行判斷省份的 1 2 身份證號驗證 相容15,18位 3 4function checkidentitycode idcard 5 12 city array 13 11 北京 12 天津 13 河北 14 山西 15 ...
身份證合法性驗證
2015年10月14日 16 42 22 從網上扒的,刪掉了一小段無用 修改了一行判斷省份的 1 2 身份證號驗證 相容15,18位 3 4function checkidentitycode idcard 5 12 city array 13 11 北京 12 天津 13 河北 14 山西 15 ...
身份證號合法性
身份證校驗 export param card returns export function valididcard card 檢查號碼是否符合規範,包括長度,型別 let iscardno function card d d x if reg.test card false return tru...