function sfzNum(id){
//校验身份证号码正确的方法var format =/^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/;//号码规则校验if(!format.test(id)){
returnfalse;}//区位码校验//出生年月日校验 前正则限制起始年份为1900;var year = id.substr(6,4),//身份证年
month = id.substr(10,2),//身份证月
date = id.substr(12,2),//身份证日
time = Date.parse(month +'-'+ date +'-'+ year),//身份证日期时间戳date
now_time = Date.parse(newDate()),//当前时间戳
dates =(newDate(year, month,0)).getDate();//身份证当月天数if(time > now_time || date > dates){
returnfalse;}//校验码判断var c =[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];//系数var b =['1','0','X','9','8','7','6','5','4','3','2'];//校验码对照表var id_array = id.split("");var sum =0;for(var k =0; k <17; k++){
sum += parseInt(id_array[k])* parseInt(c[k]);}return id_array[17].toUpperCase()=== b[sum %11].toUpperCase();}