`

根据身份证号码获取信息

阅读更多

身份证号码里面的信息大有乾坤,以18位的身份证来说,前面六位代表了你户籍所在地,第七位到第十四位代表了你的出生年月,第十五位到第十七为代表了你的性别(偶数为女,奇数为男),根据这一信息,我在系统开发的录入员工的身份证后控件焦点转移时根据身份证号码获得生日和性别。

用C#写的代码如下:

 

 

/// <summary>

        /// 在控件验证 textBox_IdentityCard 的 Validated事件中定义身份证号码的合法性并根据身份证号码得到生日和性别

        /// </summary>

        private void textBox_IdentityCard_Validated(object sender, EventArgs e)

        {

            try

            {

                string identityCard = textBox_IdentityCard.Text.Trim();//获取得到输入的身份证号码

 

                if (string.IsNullOrEmpty(identityCard))

                {

                    MessageBox.Show("身份证号码不能为空!");//身份证号码不能为空,如果为空返回

                    if (textBox_IdentityCard.CanFocus)

                    {

                        textBox_IdentityCard.Focus();//设置当前输入焦点为textBox_IdentityCard

                    }

                    return;

                }

                else

                {

                    if (identityCard.Length != 15 && identityCard.Length != 18)//身份证号码只能为15位或18位其它不合法

                    {

                        MessageBox.Show("身份证号码为15位或18位,请检查!");

                        if (textBox_IdentityCard.CanFocus)

                        {

                            textBox_IdentityCard.Focus();

                        }

                        return;

                    }

                }

                string birthday = "";

                string sex = "";

                if (identityCard.Length == 18)//处理18位的身份证号码从号码中得到生日和性别代码

                {

                    birthday = identityCard.Substring(6, 4) + "-" + identityCard.Substring(10, 2) + "-" + identityCard.Substring(12, 2);

                    sex = identityCard.Substring(14, 3);

                }

if (identityCard.Length == 15)

                {

                    birthday = "19" + identityCard.Substring(6, 2) + "-" + identityCard.Substring(8, 2) + "-" + identityCard.Substring(10, 2);

                    sex = identityCard.Substring(12, 3);

                }

                textBox_Birthday.Text = birthday;

                if (int.Parse(sex) % 2 == 0)//性别代码为偶数是女性奇数为男性

                {

                    this.comboBox_Sex.Text = "女";

                }

                else

                {

                    this.comboBox_Sex.Text = "男";

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show("身份证号码输入有误");

                if (textBox_IdentityCard.CanFocus)

                {

                    textBox_IdentityCard.Focus();

                }

                return;

            }

        }

 

用JS写的代码如下:

 

function checkId(pId){

//检查身份证号码 

    var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];

    var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];

    var Checker = [1,9,8,7,6,5,4,3,2,1,1];

 

    if(pId.length != 15 && pId.length != 18)    return "身份证号共有 15 码或18位";

 

    var Ai=pId.length==18 ?  pId.substring(0,17)   :   pId.slice(0,6)+"19"+pId.slice(6,16);

 

    if (!/^\d+$/.test(Ai))  return "身份证除最后一位外,必须为数字!";

 

    var yyyy=Ai.slice(6,10) ,  mm=Ai.slice(10,12)-1  ,  dd=Ai.slice(12,14);

 

    var d=new Date(yyyy,mm,dd) ,  now=new Date();

     var year=d.getFullYear() ,  mon=d.getMonth() , day=d.getDate();

 

    if (year!=yyyy || mon!=mm || day!=dd || d>now || year<1940) return "身份证输入错误!";

 

    for(var i=0,ret=0;i<17;i++)  ret+=Ai.charAt(i)*Wi[i];    

    Ai+=arrVerifyCode[ret %=11];     

 

    return pId.length ==18 && pId != Ai?"身份证输入错误!":Ai;        

};

 

<script language="javascript">

var id="342201570202003" 

 

//根据身份证取 省份,生日,性别  

function getInfo(id){

    var arr=[null,null,null,null,null,null,null,null,null,null,null,"北京","天津","河北","山西","内蒙古"

             ,null,null,null,null,null,"辽宁","吉林","黑龙江",null,null,null,null,null,null,null,"上海"

             ,"江苏","浙江","安微","福建","江西","山东",null,null,null,"河南","湖北","湖南","广东","广西","海南"

             ,null,null,null,"重庆","四川","贵州","云南","西藏",null,null,null,null,null,null,"陕西","甘肃"

             ,"青海","宁夏","XJ",null,null,null,null,null,"台湾",null,null,null,null,null,null,null,null

             ,null,"香港","澳门",null,null,null,null,null,null,null,null,"国外"]

    id=checkId(id)

    if (isNaN(id)) return "错误的身份证号码"    

    var id=String(id),  prov=arr[id.slice(0,2)]  ,  sex=id.slice(14,17)%2?  "男" : "女"

    var birthday=(new Date(id.slice(6,10) , id.slice(10,12)-1 , id.slice(12,14))).toLocaleDateString() 

    return [prov,birthday,sex]  

}

 

alert(getInfo(id))

</script>

分享到:
评论

相关推荐

    js身份证号码获取性别、出生日期、籍贯省市.zip

    在JavaScript编程中,有时我们需要根据身份证号码来获取个人的基本信息,如性别、出生日期和籍贯省市。这个压缩包文件“js身份证号码获取性别、出生日期、籍贯省市.zip”包含了一个JavaScript方法,用于从身份证号码...

    根据身份证号码获取性别、出生日期、籍贯省市

    这个例子中,`extract_info`函数首先检查身份证号码的格式,然后提取性别、出生日期,并根据地址码查询籍贯信息。需要注意的是,为了得到具体的籍贯省市,我们需要有一个对应于行政区划代码的数据库或者API来进行...

    根据身份证号码获取性别、出生日期、籍贯省市的js示例

    在JavaScript编程中,有时我们需要根据用户的输入,如身份证号码,来自动填充其他相关信息,例如性别、出生日期以及籍贯的省市。这样的功能可以提高用户体验,减少用户手动输入的步骤。以下是一个关于如何实现这一...

    C#根据身份证号码计算年龄和性别

    中国的身份证号码是18位的,包含了出生日期和性别等个人信息。在这个问题中,我们需要解析身份证号码的第7位到第14位来获得出生年月日,并通过第17位判断性别。以下是详细的步骤和相关知识点: 1. **身份证号码结构...

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

    根据身份证号码获取生日、年龄与性别的方法是IT领域中数据处理和身份验证的一个常见应用场景。身份证号码(在中国大陆)通常包含丰富的个人信息,包括出生日期和性别等关键数据。以下是对这一过程的详细解析,旨在...

    身份证.rar(根据身份证号码获取对应的性别,年龄,籍贯。亲测,真实可用。代码简洁,易懂。)

    本文将深入探讨如何根据身份证号码获取对应的性别、年龄以及籍贯,这些信息对于开发涉及个人身份验证的应用程序至关重要。 首先,我们来了解身份证号码的结构。中国的居民身份证号码由18位数字组成,分为6个部分: ...

    根据身份证号码提取地区信息

    根据身份证号码提取地区信息:身份证号码 身份证所在地区 420271200001212143 湖北省黄石市阳新县 600271199310100019 西藏自治区林芝地区朗县 134271197006100026 河北省衡水市深州市 430271198212200033 湖南...

    身份证号获取省、市、县

    前台,后台根据身份证信息获取省、市、县。市去掉省,县去掉省、市的代码和方法。如idcard="610102";省:"陕西省",市:"西安市",县(区):"新城区"。

    PHP身份证号码归属地查询应用实例

    这个系统的核心功能是根据身份证号码查找出对应的省、市、区等信息,而无需依赖外部API,这提高了查询效率并降低了对外部服务的依赖。以下是该应用涉及的主要知识点: 1. **CSV文件处理**: - `card_address.csv` ...

    根据身份证号码自动提取性别和出生年月及求年龄的公式.doc

    在实际应用中,经常需要根据身份证号码自动提取这些信息,例如,在人事管理、社保管理、医疗保健等领域。下面将介绍根据身份证号码自动提取性别和出生年月及求年龄的公式。 一、根据身份证号码自动提取性别 在...

    一个基于公民身份号码规则获取身份证号码中包含的基础信息组件PHP

    标题中的“一个基于公民身份号码规则获取身份证号码中包含的基础信息组件PHP”指的是一个使用PHP编程语言编写的软件组件,其主要功能是解析和提取中国公民身份证号码(ID卡号)中的个人信息。中国公民的身份证号码是...

    excel根据身份证号码。自动算出距离退休一个月内提醒标记.zip

    首先,身份证号码中的出生日期信息隐藏在第7位到第14位。男性和女性的法定退休年龄在中国通常为60岁(男性)和55岁(女性,一般适用于公务员或高级专业技术人员,对于普通女性工人是50岁)。因此,我们需要解析...

    JS验证身份证及获取地区功能示例

    获取地区功能通常基于身份证号码的前6位,这可以转换为省份、城市信息。实现这个功能,可以创建一个映射数组或对象,存储行政区划代码与对应地区的关联: ```javascript const areaMap = { "110000": "北京市", ...

    核心基础-根据身份证号判断所属省份、生日及性别-Python源码示例.zip

    本资源“核心基础-根据身份证号判断所属省份、生日及性别-Python源码示例.zip”提供了利用Python来解析中国居民身份证号码并获取其中蕴含信息的代码示例。以下是对这些知识点的详细解释: 1. **身份证号码结构**: ...

    c#根据身份证计算性别 年龄

    根据给定的信息,我们可以深入探讨如何使用C#语言来解析身份证号码并从中提取性别与年龄信息。身份证号码在中国通常有两种格式:15位和18位。18位的身份证号码包含了更多的信息,并且是中国目前使用的标准格式。下面...

    获取身份证户籍所在地.php

    获取身份证户籍所在地.php /** * @获取身份户籍所在地 * @access protected * @return array */ protected function GetCardAddress(string $card) {

    身份证号码对应省市区

    通过查询这个数据结构,开发者可以轻松地根据输入的身份证号码获取到对应的省市区信息。 在描述中提到的"身份证号码识别"文件,很可能就是这样一个数据资源,包含有所有中国身份证号码前6位及其对应省市区的映射。...

    身份证号码相关的excel函数应用实例.zip

    对于身份证号码,它可以帮助我们获取前几位信息,例如省份代码。例如,`=LEFT(A2,6)`将提取单元格A2中身份证号码的前6位。 2. **MID函数**:当需要从字符串中间提取字符时,MID函数就派上用场了。例如,我们可以...

    身份证号码区域查询数据库 (mysql 格式)

    身份证号码是中国公民身份的主要标识,由18位数字组成,其中包含了出生日期、性别和地域等个人信息。在IT行业中,处理这些数据时,通常需要一个有效的数据库系统来存储和管理。"身份证号码区域查询数据库 (mysql ...

Global site tag (gtag.js) - Google Analytics