![]()
var aCity = {
11: “北京”18位号码性别,
12: “天津”,
13: “河北”,
14: “山西”,
15: “内蒙古”,
21: “辽宁”,
22: “吉林”,
23: “黑龙江”,
31: “上海”,
32: “江苏”,
33: “浙江”,
34: “安徽”,
35: “福建”,
36: “江西”,
37: “山东”,
41: “河南”,
42: “湖北”,
43: “湖南”,
44: “广东”,

45: “广西”,
46: “海南”,
50: “重庆”,
51: “四川”,
52: “贵州”,
53: “云南”,
54: “西藏”,
61: “陕西”,
62: “甘肃”,
63: “青海”,
64: “宁夏”,
65: “新疆”,
71: “台湾”,
81: “香港”,
82: “澳门”,
91: “海外”
}
/ **
*验证ID号(15位/ 18位)
* /

function isIdCardNo(num){
num = num.toUpperCase();
//号是15位数字或18位数字. 如果全部是15位,则18位中的前17位是数字,最后一位是校验位,可以是数字,也可以是字符X.
if(!(/(^ \ d {15} $)|(^ \ d {17}([0-9] | X)$)/. test(num))){
alert(“ ID号长度不正确,或不符合规定!! 15位数字应为全数字,而18位数字的最后一位可以为数字或X . ”)
返回假;
}
//分别分析出生日期和校验位
var len = num.length;
如果(len == 15){
re = new RegExp(/ ^(\ d {2})(\ d {4})(\ d {2})(\ d {2})(\ d {2})(\ d {3 })$ /);
var arrSplit = num.match(re);
if(aCity [parseInt(arrSplit [1])] ==空){
返回“ 15位ID卡的非法区域”;
}
//检查生日是否正确
var dtmBirth =新日期(“ 19” + arrSplit [3] +“ /” + arrSplit [4] +“ /” + arrSplit [5]);
var bGoodDay;
bGoodDay =(dtmBirth.getYear()==数字(arrSplit [3]))&&((dtmBirth.getMonth()+ 1)==数字(arrSplit [4]))&&(dtmBirth.getDate()= =数字(arrSplit [5]));
if(!bGoodDay){

警报(“非法使用15张的生日”);
返回假;
}
}
如果(len == 18){
re = new RegExp(/ ^(\ d {2})(\ d {4})(\ d {4})(\ d {2})(\ d {2})(\ d {3 })([0-9] | X)$ /);
var arrSplit = num.match(re);
if(aCity [parseInt(arrSplit [1])] ==空){
返回“ 18位ID卡的非法区域”;
}
//检查生日是否正确
var dtmBirth =新日期(arrSplit [3] +“ /” + arrSplit [4] +“ /” + arrSplit [5]);
var bGoodDay;
bGoodDay =(dtmBirth.getFullYear()==数字(arrSplit [3]))&&((dtmBirth.getMonth()+ 1)==数字(arrSplit [4]))&&(dtmBirth.getDate()= =数字(arrSplit [5]));
if(!bGoodDay){
提醒(“18岁生日是非法的”)
返回假;
}其他{
//验证18位ID卡的验证码正确.
//校验位是根据ISO 7064: 1983的规定生成的.MOD 11-2,X可以视为数字10.
var valnum;
var arrInt =新数组(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
var arrCh =新数组('1','0','X','9','8','7'18位号码性别,'6','5','4','3',' 2');
var nTemp = 0,
i;
for(i = 0; i <17; i ++){
nTemp + = num.substr(i,1)* arrInt [i];
}
valnum = arrCh [nTemp%11];
if(valnum!= num.substr(17,1)){
警报(“ 18位ID卡的验证码不正确!最后一位应为: '+ valnum);
返回假;
}
}
}
返回true;
}
/ **
* 18个号以获取地区,出生日期,性别
* /
function cidInfo(sId){
返回城市[parseInt(sId.substr(0,2))] +“,” + sBirthday +“,” +(sId.substr(16,1)%2?“ Male”: “ Female”)<
}
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-168900-1.html
日本的东西好个P
教育质量大滑坡是顺理成章的事了
生产加工和运输流程啊