js验证银行卡号 luhn校验规则
<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校验规则相关推荐
- JS验证银行卡号有效性
1 //银行卡号Luhn校验算法 2 //luhn校验规则:16位银行卡号(19位通用): 3 //1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(18),位于奇数位号上的数字乘以 ...
- js验证银行卡号,并自动识别银行信息。js验证手机码。js验证数字
1. 需求 工作要求,要对表单的一些内容进行校验,要求 验证是否输入的数字 验证手机号是否正确 验证银行卡号,并自动识别银行名称 2. 实现 2.1 验证数字 export function vali ...
- vue表单验证,多种校验规则
前言 vue 表单验证,具体的大家根据自身项目和框架来,本文以antd举例. 实现 这里以antd 举例 <template><a-form-model ref="rule ...
- js验证银行卡号属于哪家银行
因为今天有个业务涉及到了银行卡业务,一开始打算让用户自己输入银行卡类型,或者是让用户手动选择银卡卡类型,但是都感觉有点捞,于是还是采用了调用接口: //接口链接 https://ccdcapi.ali ...
- DRF框架—序列化器中的字段校验规则
一.怎么校验创建的项目名是否是唯一的,当项目名name字段不唯一,怎么设置提示信息? 方法:导入UniqueValidator from rest_framework.validators impor ...
- 自定义邮箱和手机号码的校验规则
自定义邮箱和手机号码的校验规则 export default {name: "User",data() {// 验证邮箱的校验规则let checkEmail = (rule, v ...
- element-UI框架使用validate.js的form校验规则(+自定义验证代码)- 应用篇
文章目录 element-UI除了官方给出的校验规则,还可以自定义(举例如下) 代码示例: 参考文章: element-UI除了官方给出的校验规则,还可以自定义(举例如下) element-UI框架f ...
- 银行卡号验证js(银行卡号Luhm校验)
//银行卡号校验 //Description: 银行卡号Luhm校验 //Luhm校验规则:16位银行卡号(19位通用): // 1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(1 ...
- JS密码校验规则前台验证(不能连续字符(如123、abc)连续3位或3位以上)(不能相同字符(如111、aaa)连续3位或3位以上)
密码必须为8到16位且必须包含数字和字母 密码必须包含特殊字符[_&#%] 不能连续字符(如123.abc)连续3位或3位以上 不能相同字符(如111.aaa)连续3位或3位以上 /*** 外 ...
- 银行卡校验规则(Luhn算法)
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过. 该校验的过程: 1.从卡号最后一位数字 ...
最新文章
- 简论重大科学发现诞生的时机
- alsa 测试 linux_Linux低延迟服务器系统调优
- 近半年能力没进步原因分析与求助
- CTL_CODE定义中Method的说明
- js中如果无法获取某个html属性,例如自定义了一个dir属性,但获取总是为空,尝试换个词,因为可能什么关键词冲突了。...
- SQL 测验-自测结果
- 青海贵德黄河岸边现雾凇奇观
- 中国移动2020校招应聘攻略—笔试篇
- Android进阶学习方法总结(内附阿里P7进阶学习全套资料)
- 数据挖掘:概念与技术(第三版)之第八章的学习记录
- 屏幕共享软件使用方法
- python 知乎接口_python爬虫入门(3)--利用requests构建知乎API
- yum安装网络超时,尝试其他镜像
- 西电计算机学院王宇平,西安电子科技大学计算机学院硕导介绍:王宇平
- Cocoa Application-基础
- [main] org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
- CentOS7下的LAMP搭建
- WIFI模块的STA模式和AP模式有什么区别?
- 【云安全】云计算中常见的网络虚拟化
- golang使用mongo-driver操作增删改查