jQuery实现根据身份证号获取生日、年龄、性别等信息的方法

要实现根据身份证号获取生日、年龄、性别等信息,需要以下步骤:

第一步:验证身份证号是否合法

身份证号码是由18位字符组成,前17位为数字,最后一位可能是数字或字母X(表示未知或者无法识别)。而且,身份证号还有严格的校验规则,需要满足一定的算法才能被认为是合法的。

我们可以通过正则表达式来验证身份证号是否符合规范,具体的正则表达式可以参考以下代码:

function isIdCardNo(num) {
    //身份证号正则表达式
    var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    if (reg.test(num)) {
        return true;
    } else {
        return false;
    }
}

第二步:解析身份证号码,获取出生日期、性别信息

如果身份证号码通过了验证,那么接下来需要解析它,从中提取出生日期和性别信息。身份证号码的前6位表示省份和城市代码,7到14位表示出生日期,15到17位表示性别和顺序码,最后一位是校验码。

以下是通过jQuery实现根据身份证号获取出生日期和性别信息的代码:

$('#idcard').blur(function() {
    var idCardNo = $(this).val();  //获取输入框中的身份证号码
    if (isIdCardNo(idCardNo)) {
        //解析出生日期和性别信息
        var birthdate = idCardNo.substring(6, 10) + '-' + idCardNo.substring(10, 12) + '-' + idCardNo.substring(12, 14);
        var gender = idCardNo.substring(16, 17) % 2 == 0 ? '女' : '男';

        //将出生日期和性别信息显示在页面上
        $('#birthdate').val(birthdate);
        $('#gender').val(gender);
    }
    else {
        alert('请输入正确的身份证号码!');
    }
})

这段代码中,我们使用jQuery的blur()方法来监听输入框的失去焦点事件,当用户输入完毕身份证号码并离开输入框时,立即执行前面定义的isIdCardNo()方法进行身份证号验证。如果验证通过,就可以通过substring()方法从身份证号中提取出生日期和性别信息,然后将它们显示在页面上。

第三步:计算年龄

最后一步是计算年龄。简单起见,我们可以假设当前日期为2019年7月1日。根据出生日期和当前日期之间的差值,就可以计算出年龄。

以下是通过jQuery实现根据身份证号获取生日、年龄、性别等信息的完整代码:

function isIdCardNo(num) {
    //身份证号正则表达式
    var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    if (reg.test(num)) {
        return true;
    } else {
        return false;
    }
}

$('#idcard').blur(function() {
    var idCardNo = $(this).val();  //获取输入框中的身份证号码
    if (isIdCardNo(idCardNo)) {
        //解析出生日期和性别信息
        var birthdate = idCardNo.substring(6, 10) + '-' + idCardNo.substring(10, 12) + '-' + idCardNo.substring(12, 14);
        var gender = idCardNo.substring(16, 17) % 2 == 0 ? '女' : '男';

        //计算年龄
        var startdate = new Date(birthdate.replace(/-/g, '/'));  //将出生日期转为日期类型
        var enddate = new Date('2019/7/1');  //假设当前日期为2019年7月1日
        var age = enddate.getFullYear() - startdate.getFullYear();  //计算出年龄
        if (enddate.getMonth() < startdate.getMonth() || (enddate.getMonth() == startdate.getMonth() && enddate.getDate() < startdate.getDate())) {
            age--;  //还未到生日,年龄减1
        }

        //将出生日期、年龄和性别信息显示在页面上
        $('#birthdate').val(birthdate);
        $('#age').val(age);
        $('#gender').val(gender);
    }
    else {
        alert('请输入正确的身份证号码!');
    }
})

代码中通过定义startdateenddateage变量,通过getFullYear()getMonth()getDate()方法分别取出年份、月份、日期,计算出年龄,最终将出生日期、年龄和性别信息显示在页面上。

以下是另一个实例,用于解析身份证号中的籍贯省份、城市信息:

function getProvinceCity(idCardNo) {
    if (isIdCardNo(idCardNo)) {
        //解析出籍贯省份、城市信息
        var code = idCardNo.substring(0, 6);
        var province = area[code.substring(0, 2) + '0000'];
        var city = area[code.substring(0, 4) + '00'] || '';

        return province + ' ' + city;
    }
    else {
        alert('请输入正确的身份证号码!');
    }
}

//省份、城市代码及名称
var area = {
    '110000': '北京市', '120000': '天津市', '130000': '河北省', '140000': '山西省', '150000': '内蒙古自治区',
    '210000': '辽宁省', '220000': '吉林省', '230000': '黑龙江省', '310000': '上海市', '320000': '江苏省',
    '330000': '浙江省', '340000': '安徽省', '350000': '福建省', '360000': '江西省', '370000': '山东省',
    '410000': '河南省', '420000': '湖北省', '430000': '湖南省', '440000': '广东省', '450000': '广西壮族自治区',
    '460000': '海南省', '500000': '重庆市', '510000': '四川省', '520000': '贵州省', '530000': '云南省',
    '540000': '西藏自治区', '610000': '陕西省', '620000': '甘肃省', '630000': '青海省', '640000': '宁夏回族自治区', '650000': '新疆维吾尔自治区'
};

代码中定义了一个area变量,表示省份、城市代码及名称的映射关系。用身份证号码前6位提取出地区代码,根据该代码获取对应的省份、城市名称并返回结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现根据身份证号获取生日、年龄、性别等信息的方法 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQuery中值得注意的trigger方法浅析

    首先我们需要明确一下什么是jQuery中的trigger()方法。 一、trigger()方法简介 在jQuery中,每个DOM元素都会通过事件的方式与用户进行交互。通过使用trigger()方法,我们可以通过代码模拟用户操作,从而触发相应的事件。 trigger()方法是jQuery中用来触发指定事件的方法,其语法如下: .trigger(eventNam…

    jquery 2023年5月28日
    00
  • jQWidgets jqxScheduler editDialogClose事件

    下面我将为您详细讲解“jQWidgets jqxScheduler editDialogClose事件”的完整攻略: 一、什么是jQWidgets jqxScheduler editDialogClose事件? jQWidgets jqxScheduler是一个用于创建可定制的日程安排和任务计划的JavaScript组件。它具有强大的功能,可以满足各种需求。…

    jquery 2023年5月11日
    00
  • jquery带翻页动画的电子杂志代码分享

    一、介绍:这是一篇jQuery的电子杂志翻页插件文章,其中主要介绍jquery带翻页动画的电子杂志代码分享,目前应用于文章、新闻、电子杂志翻页,方便阅读和使用。 二、实现流程:1. 集成jquery和css文件将jquery.min.js和jquery.page.js文件集成到项目中,如果需要样式,还需要引入相应的CSS文件。 HTML部分 代码如下: &l…

    jquery 2023年5月28日
    00
  • jquery学习总结(超级详细)

    jQuery学习总结 1. jQuery简介 jQuery是一个快速、简洁的JavaScript框架,开发人员可以用它在HTML文档中更方便地使用JavaScript代码进行操作,它是目前应用最广泛的JavaScript库之一。jQuery的优势在于:设计思想优雅,支持主流浏览器,兼容性好,API简洁易用,高效运作。 2. jQuery基础语法 2.1 选择…

    jquery 2023年5月27日
    00
  • jQuery UI Slider destroy()方法

    以下是关于 jQuery UI Slider destroy() 方法的详细攻略: jQuery UI Slider destroy() 方法 destroy() 方法用于销毁一个已经初始化的 jQuery UI Slider 对象。该方法会移除所有的事件处理程序和样式,并将元素恢复到初始状态。 语法 $( ".selector" ).s…

    jquery 2023年5月11日
    00
  • jQWidgets jqxComboBox选择事件

    以下是关于“jQWidgets jqxComboBox选择事件”的完整攻略,包含两个示例说明: 简介 jqxComboBox件提供了 select 事件,该事件在用户选择下拉列表中的选项时触发。使用 select 事件,我们可以在用户选择选项时执行自定义操作。 详细攻略 以下是 jqxComboBox 控件的 select 事件的详细攻略: select 事…

    jquery 2023年5月11日
    00
  • jQWidgets jqxTagCloud hideItem()方法

    jQWidgets jqxTagCloud hideItem()方法 方法概述 hideItem()方法是jQWidgets jqxTagCloud插件中用于隐藏一个标签的方法。调用该方法会隐藏指定索引的标签。这个方法的语法如下: $(‘#jqxTagCloud’).jqxTagCloud(‘hideItem’, index); 参数说明 hideItem(…

    jquery 2023年5月12日
    00
  • jQuery ajax应用总结

    jQuery Ajax 应用总结 1. jQuery Ajax 简介 jQuery 是一款十分流行的 JavaScript 开源库,拥有强大的选择器、插件和操作 DOM 的能力,而其中最常用的就是 Ajax。 在 Web 开发中,Ajax 是一种无需重新加载页面即可更新数据的方法。jQuery Ajax 是指使用 jQuery 库来实现 Ajax,它能够使得…

    jquery 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部