js校验身份证号码格式是否正确

2024-06-01 09:04:31 举报文章
function checkIDCard(idcode){
    // 加权因子
    varweight_factor= [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
    // 校验码
    varcheck_code= ['1','0','X','9','8','7','6','5','4','3','2'];
    varcode= idcode +"";
    varlast= idcode[17];//最后一位
    varseventeen= code.substring(0,17);
    // ISO 7064:1983.MOD 11-2
    // 判断最后一位校验码是否正确
    vararr= seventeen.split("");
    varlen= arr.length;
    varnum= 0;
    for(vari= 0; i < len; i++){
       num= num + arr[i] * weight_factor[i];
    }
    // 获取余数
    varresisue= num%11;
    varlast_no= check_code[resisue];
    // 格式的正则
    varidcard_patter= /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
    // 判断格式是否正确
    varformat= idcard_patter.test(idcode);
    // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码
    returnlast=== last_no && format ? true : false;
}


如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!