Home >Web Front-end >JS Tutorial >JS verification ID card validity example_javascript skills

JS verification ID card validity example_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:20:141080browse
Copy code The code is as follows:

function checkIdcard(idcard){
var Errors=new Array(
"Verification passed",
"The number of digits in the ID number is incorrect!",
"The birth date of the ID number is out of the range or contains illegal characters!",
"The ID number verification error! ",
"Illegal ID card area!"
);
var area={11:"Beijing",12:"Tianjin",13:"Hebei",14:"Shanxi",15: "Inner Mongolia",21:"Liaoning",22:"Jilin",23:"Heilongjiang",31:"Shanghai",32:"Jiangsu",33:"Zhejiang",34:"Anhui",35:"Fujian ",36:"Jiangxi",37:"Shandong",41:"Henan",42:"Hubei",43:"Hunan",44:"Guangdong",45:"Guangxi",46:"Hainan", 50:"Chongqing",51:"Sichuan",52:"Guizhou",53:"Yunnan",54:"Tibet",61:"Shaanxi",62:"Gansu",63:"Qinghai",64: "Ningxia",65:"Xinjiang",71:"Taiwan",81:"Hong Kong",82:"Macau",91:"foreign"}
var idcard,Y,JYM;
var S, M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//Area check
if(area[parseInt(idcard.substr(0,2) )]==null) return Errors[4];
//ID number digits and format check
switch(idcard.length){
case 15:
if ( (parseInt(idcard. substr(6,2)) 1900) % 4 == 0 || ((parseInt(idcard.substr(6,2)) 1900) % 100 == 0 && (parseInt(idcard.substr(6,2)) 1900 ) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10 |12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1- 2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//Test the legality of date of birth Sex
} else {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12 )(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2] [0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//Test date of birth Legality
}
if(ereg.test(idcard)) return Errors[0];
else return Errors[2];
break;
case 18:
// 18-digit identity number detection
//Legality check of date of birth
//Leap year, month and day: ((01|03|05|07|08|10|12)(0[1-9]|[ 1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02 (0[1-9]|[1-2][0-9]))
//Normal year, month and day: ((01|03|05|07|08|10|12)(0[1- 9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]| 30)|02(0[1-9]|1[0-9]|2[0-8]))
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
ereg=/^[1-9][ 0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9] |3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[ 1-2][0-9]))[0-9]{3}[0-9Xx]$/;//Legacy regular expression for birth date in leap year
} else {
ereg=/ ^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1- 2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0 [1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//The legal regular expression of birth date in ordinary years
}
if(ereg.test(idcard)){//Test the validity of the date of birth
//Calculate the check digit
S = (parseInt(idcard_array[0]) parseInt(idcard_array[10 ])) * 7
(parseInt(idcard_array[1]) parseInt(idcard_array[11])) * 9
(parseInt(idcard_array[2]) parseInt(idcard_array[12])) * 10
(parseInt(idcard_array[3]) parseInt(idcard_array[13])) * 5
(parseInt(idcard_array[4]) parseInt(idcard_array[14])) * 8
(parseInt(idcard_array[5]) parseInt(idcard_array[15])) * 4
(parseInt(idcard_array[6]) parseInt(idcard_array[16])) * 2
parseInt(idcard_array[7]) * 1
parseInt(idcard_array[ 8]) * 6
parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);//Determine the check digit
if(M == idcard_array[17]) return Errors[0]; //Detect the check digit of the ID
else return Errors[3 ];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn