js 识别身份证号的性别、生日、年龄
//通过身份证号计算年龄、性别、出生日期,userCard:身份证号的字符串,不能是数字 function idCard(userCard) { // 身份证正则表达式 var re = /^\d{6}(((19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}([0-9]|x|X))|(\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}))$/; if (!re.test(userCard)) { // 测试身份证是否正确 console.log("身份证号码格式有误,请重新填写!"); return false; } else { console.log('身份证正确') } var obj = { sex:'', age:'', } //获取出生日期 obj.birth = userCard.substring(6, 10) + "-" + userCard.substring(10, 12) + "-" + userCard.substring(12, 14); //获取性别 if (parseInt(userCard.substr(16, 1)) % 2 == 1) { obj.sex = "男"; } else { obj.sex = "女"; } //获取年龄 var myDate = new Date(); var month = myDate.getMonth() + 1; var day = myDate.getDate(); var age = myDate.getFullYear() - userCard.substring(6, 10) - 1; if (userCard.substring(10, 12) < month || userCard.substring(10, 12) == month && userCard.substring(12, 14) <= day) { age++; } obj.age = age return obj; }