银行卡号算法

简介: function checkcard(banknumber) { //取出最后一位 var last = banknumber.substr(banknumber.
function checkcard(banknumber) {
        //取出最后一位
        var last = banknumber.substr(banknumber.length-1,1);
        //前15或18位
        var front_last = banknumber.substr(0,banknumber.length-1);

        var front_arr = new Array();
        //将前置部分号码存入数组(前15或18位)
        for(var i=front_last.length-1;i>-1;i--) {
            //前15或18位倒序存进数组
            front_arr.push(front_last.substr(i,1));
        }

        var sum1 = sum2 = sum3 = 0;

        for(var j=0;j<front_arr.length;j++) {
            if((j+1)%2==1) {
                // 奇数数字和
                if(parseInt(front_arr[j])*2<9) {
                    sum1 += parseInt(front_arr[j])*2;
                } else {
                    var str = parseInt(front_arr[j])*2;
                    var str1 = 1;
                    var str2 = str%10;
                    sum2 += str1;
                    sum2 += str2;
                }
            } else {
                // 偶数数字和
                sum3 += parseInt(front_arr[j]);
            }
        }
        var sum = sum1 + sum2 + sum3;
        var luhn = sum%10 == 0?0:10-sum%10;

        if(luhn == parseInt(last)){
            return true;
        }else{
            return false;
        }
    }

 

目录
相关文章
|
5月前
1031 查验身份证
1031 查验身份证
|
安全 网络安全 数据安全/隐私保护
身份证号码实名认证能够保障网络交易的安全
随着互联网的普及,网络安全问题日益受到人们的关注。身份证号码实名认证作为一种有效的身份验证方式,能够保障网络交易的安全,防止身份信息被盗用。本文将详细介绍如何进行身份证号码实名认证,以及其意义和重要性。
|
存储 文字识别 小程序
小程序识别身份证,银行卡,营业执照,驾照
小程序识别身份证,银行卡,营业执照,驾照
117 0
|
JSON 算法 安全
金润·核验通-银行卡三要素验证接口文档
银行卡三要素验证接口介绍:不限银行,比对姓名、身份证号、银行卡号的一致性,核验持卡人信息真实性 更新时间:实时 接口类型:API接口 数据优势:直连官方数据,合法合规、权威、精确 数据安全:仅确认通过与不通过,保护个人信息安全 计费方式:核验计费,详情请咨询
金润·核验通-银行卡三要素验证接口文档
|
安全
银行卡三要素实名认证对接
客户提供身份证号、银行卡账号和姓名等信息进行认证
572 0
L1-016 查验身份证 (15 分)
L1-016 查验身份证 (15 分)
163 0
7-54 查验身份证 (15 分)
7-54 查验身份证 (15 分)
96 0
|
Java
Java实现身份证号码验证
整理文档时,搜刮出一个Java实现身份证号码验证源码示例代码,稍微整理精简了一下分享给大家。
413 0
2020-09-24L1-016 查验身份证
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。
145 0