身份證合法性校驗模板

2021-08-18 15:01:11 字數 1446 閱讀 3643

//這個可以驗證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...