国际银行卡模10(mod10) javascript算法
2021-06-18 本文已影响0人
泽赫
一言不合直接上源码
export function mod10ValidateCreditCard(s) {
// remove non-numerics
var v = '0123456789',
w = '',
i,
j,
k,
m,
c,
a,
x;
for (i = 0; i < s.length; i++) {
x = s.charAt(i);
if (v.indexOf(x, 0) !== -1) {
w += x;
}
}
// validate number
j = w.length / 2;
k = Math.floor(j);
m = Math.ceil(j) - k;
c = 0;
for (i = 0; i < k; i++) {
a = w.charAt(i * 2 + m) * 2;
c += a > 9 ? Math.floor(a / 10 + (a % 10)) : a;
}
for (i = 0; i < k + m; i++) {
c += w.charAt(i * 2 + 1 - m) * 1;
}
return c % 10 === 0;
}
如何使用
const card='xxxx xxxx xxxx xxxx';
mod10ValidateCreditCard(card); // true or false