JS身分証の検証は身分証に基づいて誕生日年齢を計算します.
16548 ワード
function isIdCardNo(str,str2,str3)
{
var num= document.getElementById(str).value;
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var error;
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
error = " !";
alert(error);
//frmAddUser.txtIDCard.focus();
return false;
}
// check and set value
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
error = " !.";
alert(error);
//frmAddUser.txtIDCard.focus();
return false;
} else if (i < 17) {
varArray[i] = varArray[i]*factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (checkDate(date8) == false) {
error = " !.";
alert(error);
return false;
}
// calculate the sum of the products
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = 12 - lngProduct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
// check last digit
if (varArray[17].toUpperCase() != intCheckDigit) {
error = " !... : " + intCheckDigit + ".";
alert(error);
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (checkDate(date6) == false) {
alert(" !.");
return false;
}
}
//
var s1=document.getElementById(str).value; //
var s2; //
var s3; //
var birYear;
var yy, mm, dd;
if (s1.length == 15)
{
yy = s1.substr(6,2)
mm = s1.substr(8,2)
dd = s1.substr(10,2)
if (yy < 20)
{
yy = '20' + yy
}
else
{
yy = '19' + yy }
}
else if (s1.length == 18)
{
yy = s1.substr(6, 4)
mm = s1.substr(10, 2)
dd = s1.substr(12, 2)
}
else
{
return false
}
var myDate = new Date();
var nowYear=myDate.getFullYear();
s2=yy + '-' + mm + '-' + dd;
s3=parseInt(nowYear) -parseInt(yy);
if(s2.length==10)
{
document.getElementById(str2).value=s2;
document.getElementById(str3).value=s3;
}
return true ;
}
function GetBirthDay(txtID1, txtID2)
{
// , textbox
if(isIdCardNo(txtID1))
{
var s1=document.getElementById(txtID1).value; //
var s2; //
var s3; //
var birYear;
var myDate = new Date();
var nowYear=myDate.getFullYear;
var yy, mm, dd;
if (s1.length == 15)
{
yy = s.substr(6,2)
mm = s.substr(8,2)
dd = s.substr(10,2)
if (yy < 20)
{
yy = '20' + yy
}
else
{
yy = '19' + yy }
}
else if (s1.length == 18)
{
yy = s.substr(6, 4)
mm = s.substr(10, 2)
dd = s.substr(12, 2)
}
else
{
return false
}
s2=yy + '-' + mm + '-' + dd;
birYear=String(yy)+String(mm)+String(dd);
s3=myDate-birYear;
document.getElementById(txtID2).value;
return true ;
}
}