为了账号安全,请及时绑定邮箱和手机立即绑定

使用js技术验证用户输入的身份证号是否合法

标签:
JavaScript

这个功能取自公司项目重庆评估中心会商系统(二期)专家之家系统,前端的一个小功能验证,这个系统所有的功能都是我个人开发,现在单拿出来供前端人员使用和参考,也为我以后使用

/**
 * 身份证
 */
var CardID ={
    cityAreaId:{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:"国外"},
    birthday:"",
    sex:"",
    /**
     * 根据校验码验证身份证号是否存在
     * @param param  身份证号
     * @returns {*}
     */
    cardIdIsExist:function(param){
        var iSum = 0;
        var weight = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
        var validate = ['1','0','X','9','8','7','6','5','4','3','2'];
        for(var i = 0;i < param.length-1; i ++){
            iSum += param.charAt(i)*weight[i];
        }
        var mode = iSum % 11;
        if(param.charAt(param.length-1) != validate[mode]) {
            return "你输入的身份证号校验不通过";
        }else {
            if (param.charAt(param.length - 2) % 2 == 0) {
                this.sex = "1";//女
            } else {
                this.sex = "0";//男
            }
        }
            return true;

       /* }*/
    },

    /**
     * 验证用户输入的身份证号
     * @param param 身份证号
     * @returns {*}
     */
    verification:function(param) {
            if (!/^\d{17}(\d|x)$/i.test(param)) {
                if(!InputText.nonEmpty(param)){
                    return ;
                }
                return "你输入的身份证长度或格式错误";
            } else if (this.cityAreaId[parseInt(param.substr(0, 2))] == null) {
                return "你的身份证地区非法";
            } else {
                var birthday = param.substr(6, 4) + "-" + Number(param.substr(10, 2)) + "-" + Number(param.substr(12, 2));
                var date = new Date(birthday.replace(/-/g, "/"));
                this.birthday = date;
                if (birthday != (date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate())) {
                    return "身份证上的出生日期不符合日历日期";
                }else{
                    this.birthday =birthday;
                }
                return this.cardIdIsExist(param);
            }
    }
}

好了,单个功能写完了,使用的人员哪里不懂可以在下面评论告诉我,我会及时回答大家的

点击查看更多内容
8人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消