信用卡号码查询
对于正在搭建电商网站和支付门户的朋友们,这里有一些实用工具!无需插件!
这是Luhn 算法或Luhn 公式,用于检查信用卡号是否有效。几乎所有支付处理平台都内置了这种验证器,例如Stripe和PayPal等。
算法
- 从倒数第二位数字开始,向左移动,每隔一位数字的值翻倍。
- 如果乘以 2 的结果大于 9,则从乘以 2 的结果中减去 9。
- 求所有数字之和
- 对和取 10 的模,如果模值为 0,则根据该算法,该数字有效。
一个例子
以 79927398713 为例,算法流程如下:
|7|9|9|2|7|3|9|8|7|1|3|
- |7| 18 |9 | 4 |7| 6 |9| 16 |7| 2 |3|
- |7| 9 |9|4|7|6|9| 7 |7|2|3|
- 所有数字之和 = 70
- 70%10 = 0,因此,该数字有效。
这里有一个使用 Map 和 Reduce 函数的 JavaScript 实现示例。你也可以用你喜欢的语言尝试一下!
function luhn(no){
no = no.toString();
arr = no.split('').map(x=>parseInt(x));
arr.reverse();
rArr = rArr.map(function(x,index){
if(index%2!=0){
if(x*2 >= 10) x = x*2 - 9;
else x = x*2;
}
return x;
});
sum = rArr.reduce((accu,curr)=>accu+curr);
if(sum%10==0) return true;
return false;
}
如果您想了解更多关于该算法的信息,可以点击此处阅读更多内容。
文章来源:https://dev.to/divyajyotiuk/credit-card-number-check-4cf8