swanwish / blog

My blog website
0 stars 0 forks source link

JS:证件检查类 #26

Open swanwish opened 7 years ago

swanwish commented 7 years ago

JS:证件检查类

/**
 * 证件操作类
 */

var CertificateUtil =function(){};

/**
 * 验证各类型证件是否正确
 * @param num 证件号
 * @returns {Boolean} 
 */
CertificateUtil.prototype.cardValidate = function(idobject){
    var num = idobject.num.toUpperCase();
    var type = idobject.idType;
    var nation = idobject.nation;
    var result = false;
    switch (type) {
    case '01':   /**身份证*/
        if(this.idValidate(num)){
            result = true;
        }
        break;
    case '02':   /**护照*/
        if(/^[a-zA-Z0-9]{8,}$/.test(num)){
            result = true;
        }
        break;
    case '03':   /**军官证*/
        if(!(/^[a-zA-Z0-9\u4e00-\u9fa5\s]{5,18}$/.test(num))){  /**不是这个范围的字符,返回false;*/
            return false;
        }
        var regexStr = new RegExp("[\u4e00-\u9fa5\u0020]","g");  /**\u4e00-\u9fa5 中文及 \u0020空格*/
        var regexNum = new RegExp("[a-zA-Z0-9]","g"); /**字母数字*/
        var matchstr = num.match(regexStr);
        var matchnum = num.match(regexNum);
        var length = 0;
        if( matchstr && matchnum ){
            length = matchstr.length * 2 + matchnum.length; /***一个中文按两个字符计*/
        }
        else if(matchstr){
            length = matchstr.length * 2;
        }
        else if(matchnum){
            length = matchnum.length;
        }
        else{
            length = 0;
        }
        if(/^[a-zA-Z0-9\u4e00-\u9fa5\s]{5,}$/.test(num) &&  (length <= 18) &&  (length>=10) ){
            result = true;
        }
        break;
    case '04':   /***港澳回乡证*/
        if(nation == 'HKG' && /^[H]\d{8}$/.test(num)){
            result = true;
        }
        if(nation == 'MAC' && /^[M]\d{8}$/.test(num)){
            result = true;
        }
        break;
    case '05':   /***其他*/
        if(/^[a-zA-Z0-9]{6,}$/.test(num)){
            result = true;
        }
        break;
    case '06':   /**出生证*/
        if(/^[a-zA-Z]\d{9}$/.test(num)){
            result = true;
        }
        break;   
    case '07':   /**户口本*/
        if(this.idValidate(num)){
            result = true;
        }
        break;    
    case '08':   /**士兵证*/
        if(!(/^[a-zA-Z0-9\u4e00-\u9fa5\s\u0020]{5,18}$/.test(num))){  /**不是这个范围的字符,返回false;*/
            return false;
        }
        var regexStr = new RegExp("[\u4e00-\u9fa5\u0020]","g");  /***\u4e00-\u9fa5 中文及 \u0020空格*/
        var regexNum = new RegExp("[a-zA-Z0-9]","g"); /**字母数字*/
        var matchstr = num.match(regexStr);
        var matchnum = num.match(regexNum);
        var length = 0;
        if( matchstr && matchnum ){
            length = matchstr.length * 2 + matchnum.length; //一个中文按两个字符计
        }
        else if(matchstr){
            length = matchstr.length * 2;
        }
        else if(matchnum){
            length = matchnum.length;
        }
        else{
            length = 0;
        }
        if(/^[a-zA-Z0-9\u4e00-\u9fa5\s]{5,}$/.test(num) &&  (length <= 18) &&  (length>=10) ){
            result = true;
        }
        break;    
    case '09':   /**台胞证*/
        if(/^[0-9]{8}$/.test(num)){
            result = true;
        }
        break;    
    }
    return result;
};

/**
 * 级联证件类型
 * @param target 目标对象
 * @param isplease 是否显示请选择
 * @param that 
 */
CertificateUtil.prototype.cascadeCardType = function(target,isplease,that){
    var appidentifytype = input.appidentifytype;
    var info = "";
    /**中国成年人*/
    var info1="<option value='01'>身份证</option><option value='03'>军官证</option><option value='08'>士兵证</option>";
    /**中国未成年人*/
    var info5="<option value='01'>身份证</option><option value='06'>出生证</option><option value='07'>户口本</option>";
    /**中国人,不分成年与否*/
    var info6="<option value='01'>身份证</option><option value='03'>军官证</option><option value='06'>出生证</option><option value='07'>户口本</option><option value='08'>士兵证</option>"
    var info2="<option value='04'>港澳回乡证</option>";
    var info3="<option value='09'>台胞证</option>";
    var info4="<option value='02'>护照</option>";
    /**请选择*/
    var info7="<option value=''>请选择</option>";
    /**判断国籍,显示相应证件类型*/
    var nativacode=$(that).closest(".filltable").find(".nativacode").find("option:selected").val();
    var nativacodeName=$(that).attr("name");
    var isadult="";  /**判断当前的人是否成年 true 代表未成年  false 代表成年*/
    var insured_isadult = "";  /**被保人是否成年 0代表未成年人 1 代表成年人*/
    var appisadult="";  /**投保人是否成年 0代表未成年人 1 代表成年人*/

    if(nativacode==""){
        info = info7;
    }else{
        /**判断是否成年  1.出生日期 2.isadult*/
        var isadultflag = input.isadult;
        if(isadultflag=="1"){
            if(nativacodeName.indexOf("app")>=0){
                appisadult = "1";
            }
        }
        else if(isadultflag=="0"){
            if(nativacodeName.indexOf("app")>=0){
                appisadult = "1";
            }
            insured_isadult = "0";
        }

        /**从出生日期判断成年与否*/
        var birthvaluestring =$(that).closest(".filltable").find(".birthday").val();  
        var birthvalue="";
        if(birthvaluestring!="" && birthvaluestring!="请选择"){
            birthvalue= new Date(Date.parse(birthvaluestring.replace(/-/g,"/")));
            isadult = ageUtil.minAgeLimit(birthvalue, 18); /**true 代表未成年  false 代表成年*/
        }else{
            isadult = "";
        }

        if(target == null || target ==''){
            return false;
        }
        if(isplease){
            info = "<option value=''>请选择</option>";
        }
        var value = $(that).val();
        if(value == ''){
            return false;
        }else{
            if(value == 'CHN'){
                if(nativacodeName.indexOf("app")>=0){
                    if(appisadult=="1"){
                        info += info1;
                    }else{
                        info += info1;
                        if(typeof(isadult) == "boolean"){
                            if(isadult){
                                 info =info7;
                                 info += info5;
                            }
                        }else{
                            info = info7;
                            info += info6;
                        } 
                    }
                }
                else if(nativacodeName.indexOf("insured")>=0){
                    if(insured_isadult=="0"){
                        info += info5;
                    }else{
                        info += info1;
                        if(typeof(isadult) == "boolean"){
                            if(isadult){
                                 info = info7;
                                 info += info5;
                            }
                        }else{
                            info = info7;
                            info += info6;
                        } 
                    }
                }
                else if(nativacodeName.indexOf("benef")>=0){
                    info += info1;
                    if(typeof(isadult) == "boolean"){
                        if(isadult){
                            info = info7;
                             info += info5;
                        }
                    }else{
                        info = info7;
                        info += info6;
                    } 
                }
            }  /**CHN end*/
            else if(value == 'HKG' || value == 'MAC'){
                info += info2;
            }
            else if(value == 'TWN'){
                info += info3;
            }
            else {
                info += info4;
            }
        }
    }
    if(target != null && target !=""){
            $(target).html(info);
    }
    certificateUtil.isdisplayappidtype();  /**显示性别,出生日期*/
    certificateUtil.isdisplayappidtypePC();  /**显示性别,出生日期*/
}

/**
 * 进入页面时根据国籍,判断显示证件
 * */
CertificateUtil.prototype.displayappcardtype=function(){
    /**中国成年人*/
    var info1="<option value=''>请选择</option><option value='01'>身份证</option><option value='03'>军官证</option><option value='08'>士兵证</option>";
    /**中国未成年人*/
    var info5="<option value=''>请选择</option><option value='01'>身份证</option><option value='06'>出生证</option><option value='07'>户口本</option>";
    /**中国人,不分成年与否*/
    var info6="<option value=''>请选择</option><option value='01'>身份证</option><option value='03'>军官证</option><option value='06'>出生证</option><option value='07'>户口本</option><option value='08'>士兵证</option>"
    var info2="<option value=''>请选择</option><option value='04'>港澳回乡证</option>";
    var info3="<option value=''>请选择</option><option value='09'>台胞证</option>";
    var info4="<option value=''>请选择</option><option value='02'>护照</option>";
    /**请选择*/
    var info7="<option value=''>请选择</option>";

    /**投保人判断国籍,不论成年与否如果为‘请选择’ ,显示相应证件类型*/
    var app_nativacode=$("select[name='app_nativacode']").find("option:selected").val();
    var appidentifytype=input.appidentifytype;    /**如果是返回的,则页面证件类型已经有值*/
    var insured_isadult = "";  /**0代表未成年人进来投保*/

    if(app_nativacode==""){  /**国籍默认为请选择,值为空*/
        $('#app_identifytype').html(info7);
    }else{
        /**判断是否成年  1.isadult 2.出生日期*/
        var isadultflag = input.isadult;
        var isadult="";
        if(isadultflag=="" || typeof(isadultflag) == "undefined" || isadultflag == null){
            var birthvaluestring =$("select[name='app_nativacode']").closest(".app-module-table").find(".birthday").val();  
            var birthvalue="";
            if(birthvaluestring!=""){
                birthvalue= new Date(Date.parse(birthvaluestring.replace(/-/g,"/")));
                isadult = ageUtil.minAgeLimit(birthvalue, 18); /**true 代表未成年  false 代表成年*/
            }else{
                isadult = "";  /**如果成年与否,生日 均为未知,就会为空*/
            }
        }else{
            if(isadultflag=="1"){
                isadult = false; /**true 代表未成年  false 代表成年*/
            }else{
                isadult = false; /**true 代表未成年  false 代表成年*/
                insured_isadult = "0"; /**0 代表未成年  1 代表成年*/
            }
        }
        /**根据isadult进行判断*/
        if(typeof(isadult) == "boolean"){/**成年与否已经知道*/
            if(app_nativacode=='CHN'){
                if(!isadult){  /**成年*/
                    $('#app_identifytype').html(info1);
                 }else{  /**未成年*/
                    $('#app_identifytype').html(info5);
                 }
            }
        }else{/**成年与否不知道*/
            if(app_nativacode=='CHN'){
                $('#app_identifytype').html(info6);
            }
        }
        if(app_nativacode == 'HKG' || app_nativacode == 'MAC'){
            $('#app_identifytype').html(info2);
        }
        else if(app_nativacode == 'TWN'){
            $('#app_identifytype').html(info3);
        }
        else if( app_nativacode!='CHN' && app_nativacode!='HKG' && app_nativacode!='MAC' && app_nativacode!='TWN'){
            $('#app_identifytype').html(info4);
        }   
        /**如果国籍不为空并且证件类型不为空,代表是返回的*/
        if(app_nativacode!="" && !(appidentifytype=="" || typeof(appidentifytype) == "undefined" || appidentifytype == null)){
            $('#app_identifytype').val(appidentifytype);
        }
    }

    /**被保人的国家,决定显示相应证件类型*/
    $("select[name='insured_nativacode']").each(function(){
        /**var insuredidentifytype=input.insuredidentifytype;    如果是返回的,则页面证件类型已经有值*/
        var insured_nativacode=$(this).find("option:selected").val();
        if(insured_nativacode==""){  /**国籍默认为请选择,值为空*/
            $(this).parents(".insured-module-table").find("[name='insured_identifytype']").html(info7);
            return true; /**跳出当前循环*/
        }
        var insuredidentifytype = $(this).parents(".insured-module-table").find("[name='insured_identifytype']").val();
        if(insuredidentifytype=="" || typeof(insuredidentifytype) == "undefined" || insuredidentifytype == null){
            insuredidentifytype=input.insuredidentifytype;
        }
        var insuredisadultflag = insured_isadult;
        var insureisadult="";
        if(insuredisadultflag=="" || typeof(insuredisadultflag) == "undefined" || insuredisadultflag == null){
            var insuredbirthvaluestring =$(this).closest(".filltable").find(".birthday").val();  
            var insurebirthvalue="";
            if(insuredbirthvaluestring!=""){
                insurebirthvalue= new Date(Date.parse(insuredbirthvaluestring.replace(/-/g,"/")));
                insureisadult = ageUtil.minAgeLimit(insurebirthvalue, 18); /**true 代表未成年  false 代表成年*/
            }else{
                insureisadult = "";  /**如果成年与否,生日 均为未知,就会为空*/
            }
        }else{
            if(insuredisadultflag=="0"){
                insureisadult = true; /**true 代表未成年  false 代表成年*/
            }else{
                insureisadult = false; /**true 代表未成年  false 代表成年*/
            }
        }

        /**根据insureisadult进行判断*/
        if(typeof(insureisadult) == "boolean"){/**成年与否已经知道*/
            if(insured_nativacode=='CHN'){
                if(!insureisadult){  /**成年*/
                    $(this).parents(".insured-module-table").find("[name='insured_identifytype']").html(info1);
                 }else{  /**未成年*/
                     $(this).parents(".insured-module-table").find("[name='insured_identifytype']").html(info5);
                 }
            }
        }else{/**成年与否不知道*/
            if(insured_nativacode=='CHN'){
                $(this).parents(".insured-module-table").find("[name='insured_identifytype']").html(info6);
            }
        }
        if(insured_nativacode == 'HKG' || insured_nativacode == 'MAC'){
            $(this).parents(".insured-module-table").find("[name='insured_identifytype']").html(info2);
        }
        else if(insured_nativacode == 'TWN'){
            $(this).parents(".insured-module-table").find("[name='insured_identifytype']").html(info3);
        }
        else if( insured_nativacode!='CHN' && insured_nativacode!='HKG' && insured_nativacode!='MAC' && insured_nativacode!='TWN'){
            $(this).parents(".insured-module-table").find("[name='insured_identifytype']").html(info4);
        }
        /**如果国籍不为空并且证件类型不为空,代表是返回的*/
        if(insured_nativacode!="" && !(insuredidentifytype=="" || typeof(insuredidentifytype) == "undefined" || insuredidentifytype == null)){
            $(this).parents(".insured-module-table").find("[name='insured_identifytype']").val(insuredidentifytype);
        }
    });

    /**受益人判断是中国,显示相应证件类型*/
    $("select[name='benef_nativacode']").each(function(){
        var benef_nativacode=$(this).find("option:selected").val();
        if(benef_nativacode==""){  /**国籍默认为请选择,值为空*/
            $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info7);
            return true; /**跳出当前循环*/
        }
        var benefisadult="";
        var benefbirthvaluestring =$(this).closest(".filltable").find(".birthday").val();  
        var benefbirthvalue="";
        if(benefbirthvaluestring!=""){
            benefbirthvalue= new Date(Date.parse(benefbirthvaluestring.replace(/-/g,"/")));
            benefisadult = ageUtil.minAgeLimit(benefbirthvalue, 18); /**true 代表未成年  false 代表成年*/
        }else{
            benefisadult = "";  /**如果成年与否,生日 均为未知,就会为空*/
        }

        /**var benidtype = $(this).parents(".benef-module-table").find("[name='benef_benidtype'] option:selected").text();*/
        var benidtype = $(this).parents(".benef-module-table").find("[name='benef_benidtype']").val();

        if(typeof(benefisadult) == "boolean"){/**成年与否已经知道*/
            if(benef_nativacode=='CHN'){
                if(!benefisadult){  /**成年*/
                    $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info1);
                 }else{  /**未成年*/
                     $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info5);
                 }
            }
        }else{/**成年与否不知道*/
            if(benef_nativacode=='CHN'){
                $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info6);
            }
        }
        if(benef_nativacode == 'HKG' || benef_nativacode == 'MAC'){
            $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info2);
        }
        else if(benef_nativacode == 'TWN'){
            $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info3);
        }
        else if( benef_nativacode!='CHN' && benef_nativacode!='HKG' && benef_nativacode!='MAC' && benef_nativacode!='TWN'){
            $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info4);
        }
        /**如果国籍不为空并且证件类型不为空,代表是返回的*/
        if(benef_nativacode!="" && !(benidtype=="" || typeof(benidtype) == "undefined" || benidtype == null)){
            var value = 'option[value=\"'+benidtype+'\"]';
            $(this).parents('.benef-module-table').find("[name='benef_benidtype']").find(value).attr("selected",true);
        }
    });
    certificateUtil.isdisplayappidtype();  /**显示性别,出生日期*/
    certificateUtil.isdisplayappidtypePC();  /**显示性别,出生日期*/
};

CertificateUtil.prototype.benefbenidtype=function(){
    /**受益人判断是中国,显示相应证件类型*/
    $("select[name='benef_nativacode']").each(function(){
        var benef_nativacode=$(this).find("option:selected").val();
        if(benef_nativacode==""){  /**国籍默认为请选择,值为空*/
            $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info7);
            return true; /**跳出当前循环*/
        }
        var benefisadult="";
        var benefbirthvaluestring =$(this).closest(".filltable").find(".birthday").val();  
        var benefbirthvalue="";
        if(benefbirthvaluestring!=""){
            benefbirthvalue= new Date(Date.parse(benefbirthvaluestring.replace(/-/g,"/")));
            benefisadult = ageUtil.minAgeLimit(benefbirthvalue, 18); /**true 代表未成年  false 代表成年*/
        }else{
            benefisadult = "";  /**如果成年与否,生日 均为未知,就会为空*/
        }
        var benidtype = $(this).parents(".benef-module-table").find("[name='benef_benidtype']").val();
        if(typeof(benefisadult) == "boolean"){/**成年与否已经知道*/
            if(benef_nativacode=='CHN'){
                if(!benefisadult){  /**成年*/
                    $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info1);
                 }else{  /**未成年*/
                     $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info5);
                 }
            }
        }else{/**成年与否不知道*/
            if(benef_nativacode=='CHN'){
                $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info6);
            }
        }
        if(benef_nativacode == 'HKG' || benef_nativacode == 'MAC'){
            $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info2);
        }
        else if(benef_nativacode == 'TWN'){
            $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info3);
        }
        else if( benef_nativacode!='CHN' && benef_nativacode!='HKG' && benef_nativacode!='MAC' && benef_nativacode!='TWN'){
            $(this).parents(".benef-module-table").find("[name='benef_benidtype']").html(info4);
        }
        /**如果国籍不为空并且证件类型不为空,代表是返回的*/
        if(benef_nativacode!="" && !(benidtype=="" || typeof(benidtype) == "undefined" || benidtype == null)){
            var value = 'option[value=\"'+benidtype+'\"]';
            $(this).parents('.benef-module-table').find("[name='benef_benidtype']").find(value).attr("selected",true);
        }
    });
    certificateUtil.isdisplayappidtype();  /**显示性别,出生日期*/
    certificateUtil.isdisplayappidtypePC();  /**显示性别,出生日期*/
}

CertificateUtil.prototype.enableSex=function(){
    var app_nativacode=$("select[name='app_nativacode']").find("option:selected").val();
    if(app_nativacode!='CHN'){
        $("input[name='app_sex']").removeAttr("disabled");
    }   
}

/**
 * 根据证件类型,判断是否显示性别
 * */
CertificateUtil.prototype.isdisplayappidtype=function(){
    var idtypes = $(".idType");
    for(var i = 0; i < idtypes.length; i++){
        var idtype = $(idtypes[i]).val();
        if(idtype=='01'){
            $(idtypes[i]).closest("ul").find(".displayappsex").attr("style","display:none");
            $(idtypes[i]).closest("ul").find(".displayappbirday").attr("style","display:none");
            $(idtypes[i]).closest("ul").find(".displayinsuresex").attr("style","display:none");
            $(idtypes[i]).closest("ul").find(".displayinsurebirday").attr("style","display:none");
        }else{  
            $(idtypes[i]).closest("ul").find(".displayappsex").attr("style","");
            $(idtypes[i]).closest("ul").find(".displayappbirday").attr("style","");
            $(idtypes[i]).closest("ul").find(".displayinsuresex").attr("style","");
            $(idtypes[i]).closest("ul").find(".displayinsurebirday").attr("style","");
        }
    }

};

/**
 * 根据证件类型,判断是否显示性别,PC端
 * */
CertificateUtil.prototype.isdisplayappidtypePC=function(){
    var idtypes = $(".idType");
    for(var i = 0; i < idtypes.length; i++){
        var idtype = $(idtypes[i]).val();
        if(idtype=='01'){
            $(idtypes[i]).parents("table").find("#displayappsex").attr("style","display:none");
            $(idtypes[i]).parents("table").find("#displayappbirday").attr("style","display:none");
            $(idtypes[i]).parents("table").find("#displayinsuresex").attr("style","display:none");
            $(idtypes[i]).parents("table").find("#displayinsurebirday").attr("style","display:none");
        }else{  
            $(idtypes[i]).parents("table").find("#displayappsex").attr("style","");
            $(idtypes[i]).parents("table").find("#displayappbirday").attr("style","");
            $(idtypes[i]).parents("table").find("#displayinsuresex").attr("style","");
            $(idtypes[i]).parents("table").find("#displayinsurebirday").attr("style","");
        }
    }
    certificateUtil.enableSex();
};

/**
 * 验证身份证是否正确
 * @param num 身份证
 * @returns {Boolean}
 */
CertificateUtil.prototype.idValidate = function(num) {
    num = num.toUpperCase();
    /**身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。  */
    if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
        /**alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。');*/
        return false;
    }
    /**校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。*/
    /**下面分别分析出生日期和校验位*/
    var len, re;
    len = num.length;
    if (len == 15) {
        re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
        var arrSplit = num.match(re);

        /**检查生日日期是否正确*/
        var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
        var bGoodDay;
        bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {
            /**alert('输入的身份证号里出生日期不对!');*/
            return false;
        }
        else {
            /**将15位身份证转成18位*/
            /**校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。*/
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
            var nTemp = 0, i;
            num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
            for (i = 0; i < 17; i++) {
                nTemp += num.substr(i, 1) * arrInt[i];
            }
            num += arrCh[nTemp % 11];
            return true;
        }
    }
    if (len == 18) {
        re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
        var arrSplit = num.match(re);

        /**检查生日日期是否正确*/
        var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
        var bGoodDay;
        bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {
            /**alert(dtmBirth.getYear());*/
            /**alert(arrSplit[2]);*/
            /**alert('输入的身份证号里出生日期不对!');*/
            return false;
        }
        else {
            /**检验18位身份证的校验码是否正确。*/
            /**校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。*/
            var valnum;
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
            var nTemp = 0, i;
            for (i = 0; i < 17; i++) {
                nTemp += num.substr(i, 1) * arrInt[i];
            }
            valnum = arrCh[nTemp % 11];
            if (valnum != num.substr(17, 1)) {
                /**alert('18位身份证的校验码不正确!'); //应该为: + valnum*/
                return false;
            }
            return true;
        }
    }
    return false;
};

var certificateUtil=new CertificateUtil();