javascript 身份证验证及自动设置性别和年龄

本文介绍如何在JavaScript中监控身份证输入,通过正则表达式限制输入为18位身份证,并解析身份证号码中的信息,包括省份、城市、区县、出生日期和性别。同时,展示了如何根据身份证号自动设置性别和年龄。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

监控页面上身份证填写数值,利用正则限制填写仅为18位的身份证;
简单介绍身份证数字含义:1.前两位数字-省份代码;
2.第3-4位-城市代码;
3.第5-6位-区县代码;
4.第7-14位-出生年月日;
5.第15-17位-同一地址码所标示的区域范围内同年同月同日生人编订的顺序码;
6.第17位-性别-奇数:男性;偶数:女性;
7.最后一位-校验码,可为1-9或X。

this.watch("people_ID",lang.hitch(this,this.AgeSet)); 


AgeSet: function( elem )
{
//var reg = elem.controlDefinition.attr.validationPattern;    
/*如果在控件上已标定可以这么使用,否则直接在code上注明正则*/
var reg = "^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$";
var r = elem.getValue().match(reg);
if ( r !==  null)
{
     birth = elem.getValue().substring(6,10)+"-"+elem.getValue().substring(10,12)+"-"+elem.getValue().substring(12,14);
     gender = parseInt(elem.getValue().substr(16, 1)%2);
    if ( gender == 1)  //set gender
        {
            this.byId("selectOne_gender").setValue("男");
        }
    else
        {
            this.byId("selectOne_gender").setValue("女");
        }
//console.info("gender:",gender)
    var today = new Date();
    var month = today.getMonth() + 1;  //new Date().getMonth是比实际小一个月的
    var day = today.getDate(); 
    var age = today.getFullYear() - elem.getValue().substring(6,10) -1;
    if ( elem.getValue().substring(10,12) <= month && elem.getValue().substring(12,14)<= day)
        {
            age++;
        }
    this.byId("people_age").setValue(age);

else
    {
        this.byId("people_age").setValue(null);
    }

},



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值