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;
        }

 

posted @ 2024-09-05 09:55  哈哈敲敲  阅读(237)  评论(0编辑  收藏  举报