`

银行卡号验证算法及js实现

 
阅读更多

1. 国内的银行卡号是一串根据Luhm校验算法计算出来的数字,Luhm校验规则:16位银行卡号(19位通用)

1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(18),位于奇数位号上的数字乘以 2。
2.将奇位乘积的个十位全部相加,再加上所有偶数位上的数字。
3.将加法和加上校验位能被 10 整除。

 2. js实现

var cno = '6212288802000001666';
var arr = cno.split(/(\d)$/); // ["621228880200000166", "6", ""]
var preTotal = arr[0].split('')
  .reverse()
  .map(function (x, idx) {
    return (idx + 1) % 2 == 0 ? x * 1 : x * 2 ;
  })
  .map(function (x) {
    return x >= 10 ? x - 9 : x;
  })
  .reduce(function (x, y) {
     return x + y;
  });
var total = arr[1] * 1 + preTotal;
var isValid = total % 10 == 0;
console.log(isValid);

 

分享到:
评论

相关推荐

    js验证银行卡luhn算法

    基于国内银行卡号制定规则,因为目前接触到的银行项目需要用到客户端校验银行卡号,故自己用js写了一个Luhm校验算法,不足之处还望各位大侠赐教!

    【原创】纯javascript实现银行卡号的Luhm验证或校验算法

    基于国内银行卡号制定规则,又由于卡号的客户端校验资源缺乏,又由于目前接触到的银行项目,故自己用js写了一个Luhm校验算法,不足之处还望各位大侠赐教! 附件为测试Demo,直接浏览即可。

    判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)

    下面是判断银行卡号输入是否正确的代码(基于Luhn算法的格式校验): iOS代码: /** * 银行卡格式校验 * * @param cardNo 银行卡号 * * @return */ + (BOOL) checkCardNo:(NSString*) cardNo{ int oddsum =...

    基于openCV&Tensorflow的银行卡号识别.zip

    科研与教育:作为计算机视觉教学和研究的基础工具,OpenCV简化了算法原型开发与验证过程。 工业自动化:在视觉检测、机器人导航、产品质量控制等工业场景中,OpenCV用于实时图像分析与决策。 安防监控:用于...

    OCR:基于OpenCV和TesseractOCRiOS的银行卡号识别.zip

    科研与教育:作为计算机视觉教学和研究的基础工具,OpenCV简化了算法原型开发与验证过程。 工业自动化:在视觉检测、机器人导航、产品质量控制等工业场景中,OpenCV用于实时图像分析与决策。 安防监控:用于...

    java源码包---java 源码 大量 实例

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包2

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包3

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    客客出品专业威客系统KPPW

    银行卡绑定不同银行展示相同配图的Bug. 响应式页面样式修复. 新增 新增 我的粉丝 功能页面 新增app端任务接口 实现二级分类案例模板添加 空间成功案例加入删除功能 后台新增app分类icon上传功能 安装引导功能界面 ...

    java源码包4

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

    JAVA上百实例源码以及开源项目源代码

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    desafios-DIO:一些数字创新One训练营完成的挑战

    银行排队 Gymkhana在营地 奇数和偶数排序 年终制服 算术问题 布希诺(Coxinha de Bueno) 行程计算 简单求和 所得税税率 欧几里德定理 用Java解决算法 缩短博客文章 字符串组合 卡之心 魔术哈希 秘密委员会 求解...

Global site tag (gtag.js) - Google Analytics