根据身份证获取出生日期及性别

CreateTime--2017年6月2日11:45:16
Author:Marydon

  第一步:身份证号格式校验

/**
 * 身份证号格式校验
 */
function idValidator(obj) {
    var provinces={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",
            21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",
            33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",
            42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",
            51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",
            63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"
           };
    var expression=/(^\d{15}$)|(^\d{17}(\d|X)$)/;
    var isViald=expression.test(obj.value);
    if (isViald)
    {
       isViald=provinces[obj.value.substr(0,2)]?true:false;
    }
    return isViald;
}

  第二步:通过身份证获取出生日期及性别

/**
 * 通过身份证获取出生日期及性别
 * @param idCard 15/18位身份证号码
 * @return JSON对象
 *         sex:0-女、1-男;
 *         birthDay:yyyy-MM-dd
 */
function getBirthdayAndSex(idCard) {
    var info = {};
    var birth = (idCard.length === 18) ? idCard.slice(6, 14) : idCard.slice(6, 12);
    // 18位:提取第17位数字;15位:提取最后一位数字
    var order = (idCard.length == 18) ? idCard.slice(-2,-1):idCard.slice(-1);
    info.birthDay = (idCard.length === 18) ? ([birth.slice(0, 4),
            birth.slice(4, 6), birth.slice(-2)
            ]).join(‘-‘) : ([
                ‘19‘ + birth.slice(0, 2), birth.slice(2, 4),
                birth.slice(-2)
            ]).join(‘-‘);
    // 余数为0代表女性,不为0代表男性
    info.sex = (order % 2 === 0 ? 0 : 1);
    return info;
}

  第三步:改变出生日期及性别的值及只读状态

/**
 * 改变出生日期及性别的值及只读状态
 */
function changeCardInfo(obj) {

    if ("" == obj.value && !document.getElementById(‘BIRTH_DAY2‘).disabled)
        return;

    // 格式校验结果
    var result = idValidator(obj);
    if (result) {
        // 获取出生日期及性别
        var cardInfo = getBirthdayAndSex(obj.value);
        var birthDay = cardInfo.birthDay;
        var sex = cardInfo.sex;

        document.getElementById(‘BIRTH_DAY2‘).disabled = true;
        document.getElementById(‘BIRTH_DAY2‘).value = birthDay;
        document.getElementById(‘BIRTH_DAY‘).value = birthDay;

        document.getElementById(‘male‘).disabled = true;
        document.getElementById(‘female‘).disabled = true;

        if (1 == sex) {
            document.getElementById(‘male‘).checked = true;
            document.getElementById(‘SEX‘).value = ‘男‘;
        } else {
            document.getElementById(‘female‘).checked = true;
            document.getElementById(‘SEX‘).value = ‘女‘;
        }
    } else {//重置
        document.getElementById(‘BIRTH_DAY‘).value = "";
        document.getElementById(‘BIRTH_DAY2‘).value = "";
        document.getElementById(‘BIRTH_DAY2‘).disabled = false;
        document.getElementById(‘male‘).disabled = false;
        document.getElementById(‘female‘).disabled = false;
        document.getElementById(‘male‘).checked = true;
        document.getElementById(‘SEX‘).value = ‘男‘;
    }

}

  HTML

<table border="0" cellpadding="1" cellspacing="0" align="center">
    <tbody>
        <tr>
            <td>身份证号</td>
            <td>
                <input name="CARD_ID" class="TextBox" type="text" dataType="idcard" id="CARD_ID" errMessage="请输入正确的身份证号!"
                    onblur="changeCardInfo(this);" />
            </td>
            <td>性别</td>
            <td>
                <label>
                    <input name="SEX1" type="radio" checked id="male" onchange="$(‘#SEX‘).val(‘男‘);" />
                    男
                </label>
                <label>
                    <input name="SEX1" type="radio" id="female" onchange="$(‘#SEX‘).val(‘女‘);" />
                    女
                </label>
                <input name="SEX" type="hidden" id="SEX" value="男" />
            </td>
            <td>出生日期</td>
            <td>
                <input class="TextBox" readonly id="BIRTH_DAY2" type="text" onclick="WdatePicker({maxDate:‘%y-%M-%d‘});"
                    onblur="$(‘#BIRTH_DAY‘).val(this.value)" />
                <input name="BIRTH_DAY" id="BIRTH_DAY" type="hidden" />
            </td>
        </tr>
    </tbody>
</table>
时间: 2024-11-05 23:37:35

根据身份证获取出生日期及性别的相关文章

JS-根据身份证获取 出生日期和性别

一.根据身份证获取出生日期和性别/** * 根据身份证获取出生日期(yyyy-MM-dd) * @param psidno * @returns {birthday:yyyy-MM-dd} * @constructor */ function GetBirthday(psidno){ var birthdayno,birthdaytemp if(psidno.length==18){ birthdayno=psidno.substring(6,14) }else if(psidno.length

Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳

早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位为出生年份(2位),9-10位为出生月份,11-12位为出生日期,第13-15位为顺序号,这3位奇数为男,偶数为女.(2)18位:1-6位为地区代码,7-10位为出生年份(4位),11-12位为出生月份,13-14位为出生日期,第15-17位为顺序号,同上,第18位为效验位. 在工作时,有时希望通过身份证号码,自动提取出出生日期.性别.年龄等信息.现在我们就通过几个公式,来得

沫沫金原创提供:完整的根据身份证获取省份、性别、年龄、生日及页面验证

概述: 身份证的校验,识别,分离,处处可见.最近H5移动端的项目就需要扫码获取身份证,根据身份证自动识别省份.性别.年龄.生日信息.这里分享完善版,希望大家喜欢. 环境: 依赖jQuery.BootStrap Html <form id="cardForm"> <div class="form-group"> <label>姓名</label> <input id="patientname"

根据身份证号码自动获取出生日期,性别,籍贯

Q1:数据库 由于数据有点多,我们在这就不展示了(需要的联系我,我发给你) i 这是里面所用到的一些架包,包等等.相信大家对这一块都已经了解了,我就不说废话了. Q2:html文件 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <s

通过身份证号码获取人的年龄和性别

通过身份证号码获取人的年龄和性别:身份证可以识别一个人的信息,下面就介绍一下如何利用js通过身份证号码获取当事人的年龄和性别.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂

移动端扫描身份证获取获取身份证信息。

移动端扫描身份证获取身份证信息(前端部分)最近做了个扫描身份证的功能主要分以下几个步骤 1:使用H5+调用手机底层相机拍照功能 if(window.plus){ playCamera(); }else{ document.addEventListener( "plusready",playCamera(), false); } 调用相机拍照: playCamera: function(){ var _self=Ext.getCmp("add_client_view"

Excel中截取身份证的出生日期,并替换为日期字符串

Excel中截取身份证的出生日期,并替换为日期字符串,修改A1为身份证字段所在的单元格即可,即可快速生成:1990/01/01的日期字符串 =CONCATENATE(MID(A1,7,4),"/",MID(A1,11,2),"/",MID(A1,13,2))

C# 根据身份证号码判断出生日期和性别

18位的身份证,前面六位代表了你户籍所在地,第七位到第十四位代表了你的出生年月,第十五位到第十七为代表了你的性别(偶数为女,奇数为男),根据这一信息,我在系统开发的录入员工的身份证后控件焦点转移时根据身份证号码获得生日和性别. 用C#写的代码如下: /// <summary> /// 在控件验证 textBox_IdentityCard 的 Validated事件中定义身份证号码的合法性并根据身份证号码得到生日和性别 /// </summary> private void text

IOS 根据身份证号码获取 年龄 生日 性别

/** 从身份证上获取年龄 18位身份证 */ -(NSString *)getIdentityCardAge:(NSString *)numberStr { NSDateFormatter *formatterTow = [[NSDateFormatter alloc]init]; [formatterTow setDateFormat:@"yyyy-MM-dd"]; NSDate *bsyDate = [formatterTow dateFromString:[self birth