Luhn银行卡验证算法

luhn算法主要是为了提醒用户输入错误,而不是强制要求用户必须满足luhn。也有可能会出现不满足的情况。

LUHN算法,主要用来计算信用卡等证件号码的合法性。

  1. 从卡号最后一位数字开始,偶数位乘以2,如果乘以2的结果是两位数,将两个位上数字相加保存。
  2. 把所有数字相加,得到总和。
  3. 如果信用卡号码是合法的,总和可以被10整除。
function luhn(val) {
    'use strict';
    var addNum = 0,
        arr = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9],
        fleg = true,
        count = 0,
        err,
        i,
        num;
    for (i = val.length - 1; i >= 0; i -= 1) {
        num = parseInt(val.charAt(i), 10);
        count += 1;
        if (count % 2 === 0) {
            num = arr[num];
        }
        addNum += num;
    }
    if (addNum % 10 !== 0) {
        err = '您的银行账号可能填错了';
    }
    return err;
}
收藏 1分享浏览 2663
6年前
跟帖
小不xiaobu
4年前

赞了此话题!

沙发
说几句
广告位 点击查看投放指南

我的收藏