
<!-
功能checkIdcard(idcard){
var Errors = new Array(
“已验证!”,
“号码错误!”,
“号码的出生日期超出范围或包含非法字符!”,
“号码验证错误!”,
“非法ID区!”
);
vararea = {11: “北京”,12: “天津”,13: “河北”,14: “山西”,15: “内蒙古”,21: “辽宁”,22: “吉林”,23 : “黑龙江
”,31: “上海”,32: “江苏”,33: “浙江”,34: “安徽”,35: “福建”,36: “江西”,37: “山东”,41: ”河南“,42: ”湖
北方”,43: “湖南”js校验号码,44: “广东”,45: “广西”,46: “海南”,50: “重庆”,51: “四川”,52: “贵州”,53: “ Yunnan”js校验号码,54: “西藏
”,61: “陕西”,62: “甘肃”,63: “青海”,64: “宁夏”,65: “新疆”,71: “台湾”,81: “香港”,82: “澳门”,91: “海外”}
var retflag = false;
var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split(“”);

//区域检查
if(area [parseInt(idcard.substr(0,2))] == null)returnErrors [4];
//身份数字和格式检查
switch(idcard.length){
案例15:
如果(((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} $ /; //测试出生日期的合法性
}其他{
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} $ /; //测试出生日期的合法性
}
if(ereg.test(idcard))
返回错误[0];
其他
{
返回错误[2];
}

休息;
案例18:
// 18位标识号检测
//出生日期的遗留检查
/// Le年,月和日: ((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]))
///每周日期: ((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] $ /; // leap年的出生日期
合法性正则表达式
}其他{
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] $ /; //生日
合法性的正则表达式
}
if(ereg.test(idcard)){//测试出生日期的合法性

//计算校验位
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); //判断校验位
if(M == idcard_array [17])返回错误[0]; //检查ID的校验位
其他返回错误[3];
}
其他返回错误[2];

休息;
默认值:
返回错误[1];
休息;
}
}
//->
function check(){
if(checkIdcard(document.f1.idcard.value)!=“已验证!”)
{
alert(checkIdcard(document.f1.idcard.value));
returnfalse;
}
}
SCRIPT>
看了你这么多文字