const arrInt=newArray(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);const arrCh=newArray('1','0','X','9','8','7','6','5','4','3','2');var nTemp=0, i;if(!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))){// 输入的身份证号长度不对,或者号码不符合规定;return[boo=false, msg="输入的身份证号长度不对,或者号码不符合规定"];}// 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。// 下面分别分析出生日期和校验位var len, re; len= num.length;if(len==15){ re=newRegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);var arrSplit= num.match(re);// 检查生日日期是否正确var dtmBirth=newDate('19'+ arrSplit[2]+'/'+ arrSplit[3]+'/'+ arrSplit[4]);var bGoodDay; bGoodDay=(dtmBirth.getYear()==Number(arrSplit[2]))&&((dtmBirth.getMonth()+1)==Number(arrSplit[3]))&&(dtmBirth.getDate()==Number(arrSplit[4]));if(!bGoodDay){// 输入的身份证号里出生日期不对!return[boo=false, msg="输入的身份证号里出生日期不对!"];}else{// 将15位身份证转成18位// 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 num= num.substr(0,6)+'19'+ num.substr(6, num.length-6);for(i=0; i