<script type="text/javascript">
//luhn校验规则:16位银行卡号(19位通用):// 1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(18),位于奇数位号上的数字乘以 2。
// 2.将奇位乘积的个十位全部相加,再加上所有偶数位上的数字。
// 3.将加法和加上校验位能被 10 整除。//bankno位银行卡号
$(function(){function luhnCheck(bankno){var lastNum=bankno.substr(bankno.length-1,1);//取出最后一位(与luhn进行比较)var first15Num=bankno.substr(0,bankno.length-1);//前15或18位var newArr=new Array();for(var i=first15Num.length-1;i>-1;i--){    //前15或18位倒序存进数组
            newArr.push(first15Num.substr(i,1));}var arrJiShu=new Array();  //奇数位*2的积 <9var arrJiShu2=new Array(); //奇数位*2的积 >9var arrOuShu=new Array();  //偶数位数组for(var j=0;j<newArr.length;j++){if((j+1)%2==1){//奇数位if(parseInt(newArr[j])*2<9)arrJiShu.push(parseInt(newArr[j])*2);elsearrJiShu2.push(parseInt(newArr[j])*2);}else //偶数位
            arrOuShu.push(newArr[j]);}var jishu_child1=new Array();//奇数位*2 >9 的分割之后的数组个位数var jishu_child2=new Array();//奇数位*2 >9 的分割之后的数组十位数for(var h=0;h<arrJiShu2.length;h++){jishu_child1.push(parseInt(arrJiShu2[h])%10);jishu_child2.push(parseInt(arrJiShu2[h])/10);
        }        var sumJiShu=0; //奇数位*2 < 9 的数组之和var sumOuShu=0; //偶数位数组之和var sumJiShuChild1=0; //奇数位*2 >9 的分割之后的数组个位数之和var sumJiShuChild2=0; //奇数位*2 >9 的分割之后的数组十位数之和var sumTotal=0;for(var m=0;m<arrJiShu.length;m++){sumJiShu=sumJiShu+parseInt(arrJiShu[m]);}for(var n=0;n<arrOuShu.length;n++){sumOuShu=sumOuShu+parseInt(arrOuShu[n]);}for(var p=0;p<jishu_child1.length;p++){sumJiShuChild1=sumJiShuChild1+parseInt(jishu_child1[p]);sumJiShuChild2=sumJiShuChild2+parseInt(jishu_child2[p]);}      //计算总和
        sumTotal=parseInt(sumJiShu)+parseInt(sumOuShu)+parseInt(sumJiShuChild1)+parseInt(sumJiShuChild2);//计算luhn值var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10;        var luhn= 10-k;if(lastNum==luhn){$("#banknoInfo").html("luhn验证通过");return true;}else{$("#banknoInfo").html("银行卡号必须符合luhn校验");return false;}        }$('#btn').click(function(){alert(luhnCheck($('#kh').val()))})
})</script><body>卡号<input id="kh" type="text"><input type="button" id="btn" value="点击验证">
</body>

转载于:https://www.cnblogs.com/cnsdhzzl/p/9036601.html

js验证银行卡号 luhn校验规则相关推荐

  1. JS验证银行卡号有效性

    1 //银行卡号Luhn校验算法 2 //luhn校验规则:16位银行卡号(19位通用): 3 //1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(18),位于奇数位号上的数字乘以 ...

  2. js验证银行卡号,并自动识别银行信息。js验证手机码。js验证数字

    1. 需求 工作要求,要对表单的一些内容进行校验,要求 验证是否输入的数字 验证手机号是否正确 验证银行卡号,并自动识别银行名称 2. 实现 2.1 验证数字 export function vali ...

  3. vue表单验证,多种校验规则

    前言 vue 表单验证,具体的大家根据自身项目和框架来,本文以antd举例. 实现 这里以antd 举例 <template><a-form-model ref="rule ...

  4. js验证银行卡号属于哪家银行

    因为今天有个业务涉及到了银行卡业务,一开始打算让用户自己输入银行卡类型,或者是让用户手动选择银卡卡类型,但是都感觉有点捞,于是还是采用了调用接口: //接口链接 https://ccdcapi.ali ...

  5. DRF框架—序列化器中的字段校验规则

    一.怎么校验创建的项目名是否是唯一的,当项目名name字段不唯一,怎么设置提示信息? 方法:导入UniqueValidator from rest_framework.validators impor ...

  6. 自定义邮箱和手机号码的校验规则

    自定义邮箱和手机号码的校验规则 export default {name: "User",data() {// 验证邮箱的校验规则let checkEmail = (rule, v ...

  7. element-UI框架使用validate.js的form校验规则(+自定义验证代码)- 应用篇

    文章目录 element-UI除了官方给出的校验规则,还可以自定义(举例如下) 代码示例: 参考文章: element-UI除了官方给出的校验规则,还可以自定义(举例如下) element-UI框架f ...

  8. 银行卡号验证js(银行卡号Luhm校验)

    //银行卡号校验 //Description: 银行卡号Luhm校验 //Luhm校验规则:16位银行卡号(19位通用): // 1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(1 ...

  9. JS密码校验规则前台验证(不能连续字符(如123、abc)连续3位或3位以上)(不能相同字符(如111、aaa)连续3位或3位以上)

    密码必须为8到16位且必须包含数字和字母 密码必须包含特殊字符[_&#%] 不能连续字符(如123.abc)连续3位或3位以上 不能相同字符(如111.aaa)连续3位或3位以上 /*** 外 ...

  10. 银行卡校验规则(Luhn算法)

       当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过. 该校验的过程: 1.从卡号最后一位数字 ...

最新文章

  1. 简论重大科学发现诞生的时机
  2. alsa 测试 linux_Linux低延迟服务器系统调优
  3. 近半年能力没进步原因分析与求助
  4. CTL_CODE定义中Method的说明
  5. js中如果无法获取某个html属性,例如自定义了一个dir属性,但获取总是为空,尝试换个词,因为可能什么关键词冲突了。...
  6. SQL 测验-自测结果
  7. 青海贵德黄河岸边现雾凇奇观
  8. 中国移动2020校招应聘攻略—笔试篇
  9. Android进阶学习方法总结(内附阿里P7进阶学习全套资料)
  10. 数据挖掘:概念与技术(第三版)之第八章的学习记录
  11. 屏幕共享软件使用方法
  12. python 知乎接口_python爬虫入门(3)--利用requests构建知乎API
  13. yum安装网络超时,尝试其他镜像
  14. 西电计算机学院王宇平,西安电子科技大学计算机学院硕导介绍:王宇平
  15. Cocoa Application-基础
  16. [main] org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
  17. CentOS7下的LAMP搭建
  18. WIFI模块的STA模式和AP模式有什么区别?
  19. 【云安全】云计算中常见的网络虚拟化
  20. golang使用mongo-driver操作增删改查

热门文章

  1. SqlAlchemy ORM
  2. glassfish 自定义 jaas realm
  3. 目前项目wordpress插件记录
  4. java新手笔记6 示例for
  5. 设计模式学习--迭代器模式(Iterator Pattern)和组合模式(Composite Pattern)
  6. Android基础(三) 数据库SQLite
  7. 为什么在WSE配置中不要选择Establish Secure Session
  8. 总结一下目标检测与跟踪
  9. 刘海屏的MacBook Pro你会买吗?
  10. ionic3学习之懒加载