網頁特效身份證號碼_身份證號碼js驗證
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "HTTP://www.w3.org/tr/xhtml1/dtd/ xhtml1-transitional.dtd">
<html xmlns="HTTP://www.w3.org/1999/xhtml">
<head>
<meta HTTP-equiv="content-type" content="text/html; charset=gb2312" />
<title>js身份證號碼_身份證號碼js驗證</title>
<script type="text/網頁特效">
//alert(isidcardno("440781197007220512"));
if(isidcardno("440781197007220512")){
alert("錯誤的身份證號碼! ");
}
//--身份證號碼驗證-支援新的帶x身份證
function isidcardno(num)
{
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;
}
}
//alert ("correct.");
return true;
}
function checkdate(date)
{
return true;
}
</script>
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}$/;//測試出生日期的合法性
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]$/;//閏年出生日期的合法性正則運算式
</head>
<body>
</body>
</html>