• 大陆居民身份证真伪校验


    var IdCardValid = {//身份证检查
        isIdCard : function(_id) {
            var returnObj = new Object();
            var id = $.trim(_id.toUpperCase());
            var idArray = this._splitId(id);
            
            if (idArray.length > 0) {
                if (id.length != 18) {
                    returnObj.status = false;
                    returnObj.info = " 身份证号码必须是18位";
    
                    return returnObj;
                }
    
                var checksum = id.substring(17, 18);
                var sum = 0;
    
                for ( var i = 1; i <= idArray.length; i++) {
                    var Ai = idArray[i - 1];
                    var Wi = this._getWeightingFactor(i);
    
                    if (Wi != -1) {
                        sum += Ai * Wi;
                    }
                }
    
                var mod = sum % 11;
    
                if (this._getChecksum(mod) == checksum) {
                    returnObj.status = true;
    
                    return returnObj;
                } else {
                    returnObj.status = false;
                    returnObj.info = " 身份证号码输入错误";
    
                    return returnObj;
                }
            } else {
                returnObj.status = false;
                returnObj.info = " 身份证号码格式错误";
    
                return returnObj;
            }
        },
        
        _splitId : function(_id) {
            var len = _id.length;
            var array = new Array();
    
            for ( var i = 0; i < len - 1; i++) {
                array.push(_id.charAt(i));
            }
    
            return array;
        },
        
        _getWeightingFactor : function(_index) {
            switch (_index) {
            case 1:
                return 7;
            case 2:
                return 9;
            case 3:
                return 10;
            case 4:
                return 5;
            case 5:
                return 8;
            case 6:
                return 4;
            case 7:
                return 2;
            case 8:
                return 1;
            case 9:
                return 6;
            case 10:
                return 3;
            case 11:
                return 7;
            case 12:
                return 9;
            case 13:
                return 10;
            case 14:
                return 5;
            case 15:
                return 8;
            case 16:
                return 4;
            case 17:
                return 2;
            default:
                return -1;
            }
        },
        _getChecksum : function(_mod) {
            switch (_mod) {
            case 0:
                return 1;
            case 1:
                return 0;
            case 2:
                return "X";
            case 3:
                return 9;
            case 4:
                return 8;
            case 5:
                return 7;
            case 6:
                return 6;
            case 7:
                return 5;
            case 8:
                return 4;
            case 9:
                return 3;
            case 10:
                return 2;
            default:
                return -1;
            }
        }
    };
  • 相关阅读:
    软件测试培训第9天
    软件培训第8天
    软件测试培训第7天
    软件测试培训第5天
    软件测试培训第6天
    软件测试培训第4天
    软件测试培训第3天
    MySQL复杂用法
    MySQL的基本语法
    VM虚拟机上安装Redhat
  • 原文地址:https://www.cnblogs.com/mayi168/p/3465396.html
Copyright © 2020-2023  润新知