当前位置:   article > 正文

前端处理身份证相关方法_前端实现识别身份证的方法

前端实现识别身份证的方法

1. 根据身份证获取出生日期、性别、年龄

/*

* @param {string} idcard - 身份证号

* @returns {object} object.birth - 生日 object.gender - 性别 object.age - 年龄

*/

function getIdCardInfo(idcard) {

    var isIdcard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;

    var birth = '';

    var birthYear = '';

    var birthMonth = '';

    var birthDay = '';

    var gender = '';

    var age = '';

    if (isIdcard.test(idcard)) {

        // 获取当前日期

        var curDate = new Date();

        var curMonth = curDate.getMonth() + 1;

        var curDay = curDate.getDate();

        if (idcard.length === 18) {// 18位身份证

            birthYear = idcard.substring(6, 10);

            birthMonth = idcard.substring(10, 12);

            birthDay = idcard.substring(12, 14);

            gender = idcard.substring(16, 17);

        else if (idcard.length === 15) {// 15位身份证

            birthYear = "19" + idcard.substring(6, 8);

            birthMonth = idcard.substring(8, 10);

            birthDay = idcard.substring(10, 12);

            gender = idcard.substring(14, 15);

        }

        birth = birthYear + "-" + birthMonth + "-" + birthDay;

        gender = gender % 2 ? "男" "女";// 1代表男性,2代表女性

        age = curDate.getFullYear() - birthYear - 1;

        if (idcard.substring(10, 12) < curMonth || idcard.substring(10, 12) == curMonth && idcard.substring(12, 14) <= curDay) {

            age++;

        }

        return {

            birth: birth,

            gender: gender,

            age: age,

        }

    else {

        return {

            birth: '',

            gender: '',

            age: '',

        }

    }

}

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号