JS验证身份证是否有效

// 验证身份证
function check_id_card(value){
    let arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子
    let arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码
    if(/^\d{17}\d|x$/i.test(value)){
        let sum = 0, idx;
        for(let i = 0; i < value.length - 1; i++){
            // 对前17位数字与权值乘积求和
            sum += parseInt(value.substr(i, 1), 10) * arrExp[i];
        }
        // 计算模(固定算法)
        idx = sum % 11;
        // 检验第18为是否与校验码相等
        return arrValid[idx] == value.substr(17, 1).toUpperCase();
    }else{
        return false;
    }
}
发布了21 篇原创文章 · 获赞 6 · 访问量 1494

猜你喜欢

转载自blog.csdn.net/weixin_42047371/article/details/102861931