js简单判断身份证合法性以及身份证生日合法性

 2023-09-15 阅读 14 评论 0

摘要:该函数可以判断身份证生意是否合法,简单判断是否符合身份证规则,没有验证区县等等,借鉴了网络上的一些写法。 function idCard(UUserCard, num) { // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,

该函数可以判断身份证生意是否合法,简单判断是否符合身份证规则,没有验证区县等等,借鉴了网络上的一些写法。

function idCard(UUserCard, num) {


    // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
    if (num == 1) {
        var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
        if (reg.test(UUserCard) === false) {
            return false;
        } else {
            return true;
        }
    }
    if (num == 2) {
        var result = true;
        if (15 == UUserCard.length) {
            var year = UUserCard.substring(6, 8);
            var month = UUserCard.substring(8, 10);
            var day = UUserCard.substring(10, 12);
            var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
            // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法  
            if (temp_date.getYear() != parseFloat(year) || temp_date.getMonth() != parseFloat(month) - 1 || temp_date.getDate() != parseFloat(day)) {
                result = false;
            }
        } else if (18 == UUserCard.length) {
            var year = UUserCard.substring(6, 10);
            var month = UUserCard.substring(10, 12);
            var day = UUserCard.substring(12, 14);
            var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));

            // 这里用getFullYear()获取年份,避免千年虫问题    
            if (temp_date.getFullYear() != parseFloat(year) || temp_date.getMonth() != parseFloat(month) - 1 || temp_date.getDate() != parseFloat(day)) {
                result = false;
            }
        } else {
            result = false;
        }
        return result;
    }

    if (num == 3) {
        //获取出生日期
        if (UUserCard.length == 15) {
            var birth = '19' + UUserCard.substring(6, 8) + "-" + UUserCard.substring(8, 10) + "-" + UUserCard.substring(10, 12);
        } else if (UUserCard.length == 18) {
            var birth = UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14);
            
        }
        return birth;
    }
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/59420.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息