`

银行卡号验证算法及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验证银行卡号

    本文将深入解析如何使用JavaScript来验证银行卡号的有效性,基于提供的代码片段,我们将详细阐述其工作原理及实现过程。 ### 银行卡号验证原理 银行卡号验证通常采用卢汉算法(Luhn Algorithm),这是一种用于验证...

    银行卡号Luhn校验算法的JS实现.pdf

    银行卡号Luhn校验算法的JS实现 在电子商务和在线支付系统中,银行卡号验证是非常重要的一步。为了提高系统的交互性和信息录入的准确性,同时减轻服务器的工作压力,需要在浏览器端进行有效的银行卡号验证。本文讨论...

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

    总结起来,Luhm算法是验证银行卡号有效性的一个标准方法,而纯JavaScript的实现则提供了一种灵活且跨平台的解决方案。对于处理银行相关的Web应用来说,这样的验证功能是必不可少的,它有助于提高用户体验,减少数据...

    js验证银行卡luhn算法

    在JavaScript中实现Luhn算法,可以有效地帮助我们验证国内银行卡号的合法性,避免因用户输入错误导致的系统问题。 Luhn算法的基本步骤如下: 1. **反转数字串**:从右到左读取数字串(忽略非数字字符),偶数位置...

    js校验身份证号和银行卡号

    在JavaScript(简称js)编程中,验证身份证号和银行卡号是非常常见的需求,特别是在网页表单提交或者用户注册等场景。身份证号码验证确保了输入的有效性,防止非法或错误的输入,而银行卡号验证则可以保护用户的金融...

    根据银行卡号判断银行名称

    在实际项目中,还可能遇到的问题包括银行卡号的合法性验证(使用Luhn算法进行校验),以及处理特殊情况,如国际银行卡、多 BIN 号的情况等。对于多 BIN 号,可能需要对输入的银行卡号进行多次匹配。此外,由于银行...

    输入银行卡号判断银行

    综上所述,实现“输入银行卡号判断银行”的功能涉及数据收集、格式校验、前缀匹配、校验算法等多个环节,而JavaScript作为前端开发的主要语言,可以很好地完成这些任务。在实际项目中,还需要考虑性能优化、安全性...

    JS input正则验证大全

    5. **银行卡验证**: - 银行卡号可能有多种长度和格式,但通常会涉及到Luhn算法(也称为模10算法)来验证其有效性。正则表达式可以用来初步过滤,例如`/^\d{16,20}$/`,然后需要进一步用Luhn算法进行计算。 6. **...

    根据银行账户调用阿里接口更新银行名称

    4. **银行卡号验证**:阿里提供的接口可能包含了银行卡号的验证功能,这通常涉及到银行卡号的合法性检查,例如Luhn算法(也称为模10算法),用于校验银行卡号的正确性。 5. **银行名称获取**:接口返回的银行名称...

    JavaScript中校验银行卡号的实现代码

    在本文中,我们将探讨如何使用JavaScript语言实现银行卡号的校验功能。这是一个在电子商务和金融类网站中常见的需求。银行卡号校验不仅可以验证用户输入的卡号是否符合一般的格式要求,还可以通过特定的算法来检查其...

    最新银行卡bin脚本.zip

    2. **验证功能**:对输入的银行卡号进行合法性验证,检查其是否符合特定的格式规则,比如Luhn算法校验。 3. **数据更新**:由于BIN信息会随着时间和银行策略的变化而更新,这个脚本可能包含了定期更新或获取最新BIN...

    JAVASCRIPT常用格式验证 数据安全验证之正则表达式 大全.rar

    6. 银行卡号验证:银行卡号通常较长且有特定的校验规则,如`/^\d{16,20}$/`,这只是一个简单的长度检查,更复杂的验证可能需要Luhn算法。 在实际开发中,开发者可以利用这些预定义的正则表达式快速实现数据验证功能...

    非常有用的对信用卡号码进行有效性验证jQuery插件.zip

    jQuery插件则是开发者为扩展jQuery功能而编写的代码模块,通常包含特定的函数或功能,比如这个信用卡验证插件。 信用卡验证通常涉及到以下几点: 1. **Luhn算法**:这是一种简单的校验算法,由IBM的工程师Luigi ...

    JS 表单验证的15个正则表达式

    5. 银行卡号验证(Luhn算法): 正则表达式只是初步检查,实际验证还需用Luhn算法,这里仅检查长度和数字组成。 `/^\d{16}$/` 此正则匹配16位的数字字符串,通常用于信用卡号。 6. 身份证号(15位或18位)验证: `/...

    一个简单的信用卡验证表

    虽然没有直接的.js文件,但信用卡验证通常涉及JavaScript,用于处理用户输入的实时验证。例如,它可以检查卡号是否符合特定格式(如Luhn算法),有效期是否在当前日期之后,以及安全码是否有效。JavaScript也可以...

    非常有用的信用卡验证插件

    信用卡验证是在线交易中至关重要的一个环节,它确保了支付的安全性和减少了欺诈行为的发生。这个名为"非常有用的信用卡验证插件"的工具显然是为电子商务网站或应用程序设计的,旨在提高客户支付过程中的验证效率和...

    js_常用正则表达式表单验证代码

    6. 银行卡号验证: 银行卡号可能由不同银行的规则决定,但通常都是多位数字。这里提供一个简单的验证: ```javascript var bankCardRegex = /^\d{16,20}$/; ``` 这个表达式将匹配16到20位的数字字符串,适用于...

    clabe-checksum:CLBE 银行编号的校验和验证

    它基于模10算法,也称为Luhn算法或mod 10验证算法。算法步骤如下: 1. 从右向左遍历CLABE号码,偶数位置的数字乘以2(从个位数开始,第二位、第四位...)。 2. 如果乘以2的结果是两位数,将这两个数字相加。 3. 从...

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

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

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

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

Global site tag (gtag.js) - Google Analytics