前端JS银行卡等校验方法总结

会持续更新

银行卡输入添加空格和长度限制
/*** 银行卡格式化* 如何:6217 0044 0000 2047555*/formatBankNo:function (BankNo){if (BankNo.value == "") return;var account = new String (BankNo.value);account = account.substring(0,22); /*帐号的总数, 包括空格在内 */if (account.match (".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}") == null){/* 对照格式 */if (account.match (".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}|" + ".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}|" +".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}|" + ".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}") == null){var accountNumeric = accountChar = "", i;for (i=0;i<account.length;i++){accountChar = account.substr (i,1);if (!isNaN (accountChar) && (accountChar != " ")) accountNumeric = accountNumeric + accountChar;}account = "";for (i=0;i<accountNumeric.length;i++){    /* 可将以下空格改为-,效果也不错 */if (i == 4) account = account + " "; /* 帐号第四位数后加空格 */if (i == 8) account = account + " "; /* 帐号第八位数后加空格 */if (i == 12) account = account + " ";/* 帐号第十二位后数后加空格 */account = account + accountNumeric.substr (i,1)}}}else{account = " " + account.substring (1,5) + " " + account.substring (6,10) + " " + account.substring (14,18) + "-" + account.substring(18,25);}if (account != BankNo.value) BankNo.value = account;},
银行卡是否可用精度校验
/*** 银行卡精确验证* 依赖:luhnCheck方法* 返回:Boolean*/CheckBankNo(t_bankno) {t_bankno = String(t_bankno).replace(/\s*/g,"")var bankno =$.trim(t_bankno);if (bankno == "") {return false;}if (bankno.length < 16 || bankno.length > 19) {console.log("银行卡号长度必须在16到19之间")return false;}var num = /^\d*$/;  //全数字if (!num.exec(bankno)) {return false;}//开头6位var strBin="10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99";    if (strBin.indexOf(bankno.substring(0, 2))== -1) {return false;}//Luhm校验(新)   if(!this.luhnCheck(bankno))return false;return true;},luhnCheck(bankno) {bankno = String(bankno).replace(/\s*/g,"")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){return true;}else{return false;}        },
手机号校验
const validatemobile = (newname) => {if (newname.length == 0) {return false;}if (newname.length != 11) {return false;}var PATTERN_CHINAMOBILE = /^1(3[4-9]|5[012789]|8[23478]|4[7]|7[8])\d{8}$/; //移动号var PATTERN_CHINAUNICOM = /^1(3[0-2]|5[56]|8[56]|4[5]|7[6])\d{8}$/; //联通号var PATTERN_CHINATELECOM = /^1(3[3])|(8[019])\d{8}$/; //电信号if (PATTERN_CHINAUNICOM.test(newname)) {return true;} else if (PATTERN_CHINAMOBILE.test(newname)) {return true;} else if (PATTERN_CHINATELECOM.test(newname)) {return true;}else {return false;}
};
email校验
validateMail:function (mail){if(mail!=""){var strRegex = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;if(!strRegex.test(mail)){return false;}}return true;},

js银行卡、手机号等校验汇总相关推荐

  1. 手机号正则表达式校验,兼容+86,空格和-分隔符等常规手机格式

    手机号正则表达式校验 背景 前一段时间在用蜂巢取快递的时候,我输入199号段,发现提示我手机号错误,导致我无法注册使用蜂巢功能. 最近有空了,打算写一篇关于手机号校验的文章,和大家交流交流.现在网上的 ...

  2. 微信号,QQ号,手机号 正则校验

    var wxReg = new RegExp("^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$"); //微信号正则校验 var qqReg = new RegE ...

  3. Node.js b站教学视频汇总笔记(完)CommonJS模块规范、 require、npm、Express(中间件)、MongoDB、MySQL

    文章目录 Node.js b站教学视频汇总笔记(完)CommonJS模块规范. require.npm.Express(中间件).MongoDB.MySQL 1. Node介绍 为什么要学习Node. ...

  4. 银行卡四元素校验API 验证姓名手机号码身份证号码银行卡号是否一致

    银行卡四元素校验API,检测输入的姓名.手机号码.身份证号码.银行卡号是否一致.通过https://www.juhe.cn/docs/api/id/213申请APPKEY 1.银行卡四元素检测 接口地 ...

  5. html判断手机号码正确,js判断手机号是否正确并返回的实现代码

    js判断手机号是否正确并返回的代码,具体代码如下所示: function abc() { var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})) ...

  6. js身份证正则精准校验

    js身份证正则精准校验 介绍 xxxxxx yyyy MM dd 375 0     十八位 xxxxxx    yy MM dd   75 0     十五位 地区: [1-9]\d{5} 年的前两 ...

  7. JS—判断手机号和邮政编码

    JS-判断手机号和邮政编码 -------------------------------------------------------------------------------------- ...

  8. js银行卡luhm校验,验证银行卡号并返回开户行(三方插件和在线验证)

    最近做公司的项目遇到银行卡号匹配开户银行的问题,一开始是正则匹配银行卡号码,开户银行银行自己填写,后来用户又让改,说要自动匹配开户银行,唉,用户都是大哥,让改就要改--话不多说,上代码. 自己寻思了半 ...

  9. js 银行卡正则校验

    // pages/wapManageFinance/bankManage.js const {getProvinceList,getCityList,getCountyList,addMemberBa ...

最新文章

  1. 纸牌游戏——小猫钓鱼
  2. CString比较相等不得不说的故事
  3. 高等数理统计(part8)--UMRUE和UMVUE
  4. PyQt5笔记(01) -- 创建空白窗体
  5. linux编译ios动态库,[Linux] linux下生成静态库和动态库
  6. 1163: 零起点学算法70——Yes,I can!
  7. 燃气灶电气线路图及原理_电气安装造价如何入门,核心知识已为你打包
  8. 手机屏碎了,怎样辨别是外屏坏还是内屏坏,看完这篇文章就明白了
  9. 【软考系统架构设计师】2014年下系统架构师案例分析历年真题
  10. 计算机桌面出现临时文件,tmp什么文件,为什么出现tmp文件
  11. Centos8.3安装
  12. 『Python基础练习题』day04
  13. linux设置法语键盘布局,法语键盘布局图.doc
  14. iPhone13有3D Touch吗 3D Touch有什么用
  15. 百度地图集成,经纬度返回 4.9e-324
  16. 浅谈智能家居安防监控的重要性
  17. Vulnhub--bulldog
  18. 顾险峰:当深度学习遇到3D
  19. 网站被流量攻击怎么处理
  20. SSL双向验证--keytool实现自签名证书

热门文章

  1. 红米4a android9.0,小米-红米4A/5A-通刷-LOS-Beta4.0-安卓9.0.0-来去电归属-农历等-本地化增强适配...
  2. linux 类似winscp_linux 类似 winscp
  3. 【转载】专利翻译常用词句
  4. 写一篇讲解优芽动画知识的教案
  5. 批量去除图片的黑色背景,并且统一修改图片尺寸
  6. 使用腾讯云轻量应用服务器搭建网络质量拨测工具 SmokePing
  7. STM8L使用ADC内部参考电压通道测量VDD电压
  8. Apple 好莱坞艳照门的安全分析
  9. hiredis-vip
  10. 测试流程如何有效落地?