JS之获取银行卡信息
在使用Lnhn算法验证完银行正确性后,某个功能可能需要显示该银行看的专有信息,例如银行卡所属类型,所属银行等等。

下面使用js实现:

function bankCardAttribution(bankCard) {var cardTypeMap = {DC : "储蓄卡",CC : "信用卡",SCC : "准贷记卡",PC : "预付费卡"};/*解决多重数组对象的返回结果*/function extend(target, source) {var result = {};var key;target = target || {};//系统自己产生一个事件对象source = source || {};//系统自己产生一个事件对象/*判断对象是否有某个特定的属性。必须用字符串指定该属性。(例如,o.hasOwnProperty("name"))*/for (key in target) {if (target.hasOwnProperty(key)) {result[key] = target[key];}}for (key in source) {if (source.hasOwnProperty(key)) {result[key] = source[key];}}return result;}/*银行卡类型*/function getCardTypeName(cardType) {if (cardTypeMap[cardType]) {return cardTypeMap[cardType]}return undefined;}

/*银行卡所属银行*/var bankcardList = [{bankName : "中国邮政储蓄银行",bankCode : "PSBC",patterns : [{reg : /^(621096|621098|622150|622151|622181|622188|622199|955100|621095|620062|621285|621798|621799|621797|620529|621622|621599|621674|623218|623219)\d{13}$/g,//\d{13} 13位数字  $ 匹配输入字符串的结束位置 /g (全文查找出现的所有匹配字符) 6+13位 = 19cardType : "DC"}, {reg : /^(62215049|62215050|62215051|62218850|62218851|62218849)\d{11}$/g,// 6+11位 = 17cardType : "DC"}, {reg : /^(622812|622810|622811|628310|625919)\d{10}$/g, //6+10位=16cardType : "CC"}]},{bankName : "中国工商银行",bankCode : "ICBC",patterns : [{reg : /^(620200|620302|620402|620403|620404|620406|620407|620409|620410|620411|620412|620502|620503|620405|620408|620512|620602|620604|620607|620611|620612|620704|620706|620707|620708|620709|620710|620609|620712|620713|620714|620802|620711|620904|620905|621001|620902|621103|621105|621106|621107|621102|621203|621204|621205|621206|621207|621208|621209|621210|621302|621303|621202|621305|621306|621307|621309|621311|621313|621211|621315|621304|621402|621404|621405|621406|621407|621408|621409|621410|621502|621317|621511|621602|621603|621604|621605|621608|621609|621610|621611|621612|621613|621614|621615|621616|621617|621607|621606|621804|621807|621813|621814|621817|621901|621904|621905|621906|621907|621908|621909|621910|621911|621912|621913|621915|622002|621903|622004|622005|622006|622007|622008|622010|622011|622012|621914|622015|622016|622003|622018|622019|622020|622102|622103|622104|622105|622013|622111|622114|622017|622110|622303|622304|622305|622306|622307|622308|622309|622314|622315|622317|622302|622402|622403|622404|622313|622504|622505|622509|622513|622517|622502|622604|622605|622606|622510|622703|622715|622806|622902|622903|622706|623002|623006|623008|623011|623012|622904|623015|623100|623202|623301|623400|623500|623602|623803|623901|623014|624100|624200|624301|624402|623700|624000)\d{12}$/g,cardType : "DC"},{reg : /^(622200|622202|622203|622208|621225|620058|621281|900000|621558|621559|621722|621723|620086|621226|621618|620516|621227|621288|621721|900010|623062|621670|621720|621379|621240|621724|621762|621414|621375|622926|622927|622928|622929|622930|622931|621733|621732|621372|621369|621763)\d{13}$/g,cardType : "DC"},{reg : /^(402791|427028|427038|548259|621376|621423|621428|621434|621761|621749|621300|621378|622944|622949|621371|621730|621734|621433|621370|621764|621464|621765|621750|621377|621367|621374|621731|621781)\d{10}$/g,cardType : "DC"},{reg : /^(9558)\d{15}$/g,cardType : "DC"},{reg : /^(370246|370248|370249|370247|370267|374738|374739)\d{9}$/g,cardType : "CC"}, {reg : /^(427010|427018|427019|427020|427029|427030|427039|438125|438126|451804|451810|451811|458071|489734|489735|489736|510529|427062|524091|427064|530970|530990|558360|524047|525498|622230|622231|622232|622233|622234|622235|622237|622239|622240|622245|622238|451804|451810|451811|458071|628288|628286|622206|526836|513685|543098|458441|622246|544210|548943|356879|356880|356881|356882|528856|625330|625331|625332|622236|524374|550213|625929|625927|625939|625987|625930|625114|622159|625021|625022|625932|622889|625900|625915|625916|622171|625931|625113|625928|625914|625986|625925|625921|625926|625942|622158|625917|625922|625934|625933|625920|625924|625017|625018|625019)\d{10}$/g,cardType : "CC"},{reg : /^(45806|53098|45806|53098)\d{11}$/g,cardType : "CC"}, {reg : /^(622210|622211|622212|622213|622214|622220|622223|622225|622229|622215|622224)\d{10}$/g,cardType : "SCC"}, {reg : /^(620054|620142|620184|620030|620050|620143|620149|620124|620183|620094|620186|620148|620185)\d{10}$/g,cardType : "PC"}, {reg : /^(620114|620187|620046)\d{13}$/g,cardType : "PC"}]
}
 function getBankNameByBankCode(bankcode) {for (var i = 0, len = bankcardList.length; i < len; i++) {var bankcard = bankcardList[i];if (bankcode == bankcard.bankCode) {return bankcard.bankName;}}return "";
}
/*获取银行卡的类型和所属银行*/
function _getBankInfoByCardNo(cardNo) {/*循环银行数组*/for (var i = 0, len = bankcardList.length; i < len; i++) {/*获取对应循环中对应的银行*/var bankcard = bankcardList[i];/*获取对应循环中对应的银行的发行者识别号码和类型数组*/var patterns = bankcard.patterns;/*循环银行的发行者识别号码和类型数组*/for (var j = 0, jLen = patterns.length; j < jLen; j++) {/*获取循环银行的发行者识别号码数组对象的发行者识别号码和类型*/var pattern = patterns[j];/*通过正则表达式发行者识别号码数组对象的发行者识别号码和类与银行卡匹配*/if ((new RegExp(pattern.reg)).test(cardNo)) {/**/var info = extend(bankcard, pattern);delete info.patterns;delete info.reg;info['cardTypeName'] = getCardTypeName(info['cardType']);return info;//返回银行卡结果}}}return 'error';
}
return _getBankInfoByCardNo(bankCard)

}
中间的所诉银行按照数组嵌套方式添加:各个银行的银行卡的类型等等信息;

JS之获取银行卡信息相关推荐

  1. 调用阿里接口获取银行卡信息

    调用阿里接口获取银行卡信息 直接上代码 // An highlighted block import com.alibaba.fastjson.JSONObject;import java.io.Bu ...

  2. 微信小程序app.js中获取用户信息以及为golbalData赋值的坑

    代码如下: //app.js App({ globalData: { urlPath: "http://www.baidu.com//",    //此处貌似必须填写搜索引擎的网址 ...

  3. 阿里获取银行卡信息接口

    // 获取银行卡号信息getCardInfo(cardNum) {/*** https://apimg.alipay.com/combo.png?d=cashier&t=ABC* 获取银行图片 ...

  4. js如何获取jwt信息_企业舆情要怎么获取,如何处理负面舆情信息?

    一.企业获取舆情的重要性 舆情监控与舆情分析是一直伴随着企业成长的不可或缺的部分,良好的企业形象有助于快速树立品牌形象,提升用户的认可度从而转化成一股神秘的力量让企业爆发式的增长,比如某干妈辣酱当时火 ...

  5. js如何获取jwt信息_如何获取有价值的信息

    信息时代的重要特征,就是信息增加的速度与传播速度相对过去有了质的飞越.但随之而来的问题也出现了,信息的噪音(无价值信息)爆炸性增长,真正有价值的信息迅速被信息噪音淹没,因为有价值的信息永远是线性增长的 ...

  6. js如何获取jwt信息_学习后端鉴权系列: 基于JWT的会话管理

    内容回顾 上一节讲了基于Cookie+Session的认证方案. Even:学习后端鉴权系列: 基于Cookie, Session认证​zhuanlan.zhihu.com 由于基于Session方案 ...

  7. js如何获取jwt信息_谈房地产公众号如何涨粉?一篇文章让你轻松获取信息

    原标题:谈房地产公众号如何涨粉?一篇文章让你轻松获取信息 对于房地产企业来说,如何学会运营自己企业的房地产微信公众号是涨粉引流的关键一步,老话说:一步走好,步步稳.值得夸奖的是近几年中高端房地产企业在 ...

  8. js GPS获取定位信息

    this.getLocation() getLocation(){ var options={ enableHighAccuracy:true, maximumAge:1000 } if(naviga ...

  9. 银行卡信息精准识别-智能快速绑卡

    1. 前言 在AI人工智能的潮流下,出现了很多方便人们生活的产品:人脸识别技术-完成人脸开锁,人脸核身:车牌识别-完成停车场无人计费系统设计:自动驾驶-辅助车主行车,自动泊车等等,还有很多相关的应用. ...

  10. 小程序获取用户信息无法得到问题

    小程序获取用户信息无法得到问题 1.前言 因为小程序是由js代码编写的,我js学得不是特别的好,所以,刚开始以为js跟java一行,一行一行的执行,后面才发现,完全不是,所以有时候,我们在获取用户信息 ...

最新文章

  1. linux下各种颜色的文件表示的文件类型
  2. Cisco3560交换机enable密码破解和恢复出厂设置
  3. windowsphone开发_APP软件开发用哪些软件比较好
  4. 百度云cdn设置州五年制大专_图说云原生:让云原生转型变得像种白菜一样简单...
  5. strace命令(收集整理,常看常新)
  6. Expression Blend 利用 SketchFlow 制作原型
  7. 一文讲解安卓应用软件开发有什么优势?
  8. 【转】TreeList 选中节点时图标状态和背景色
  9. 【配送路径规划】基于matlab遗传算法求解单配送中心多客户多车辆最短路径规划问题【含Matlab源码 1602期】
  10. html移动端弹窗,移动端弹窗
  11. 擦窗机器人毕业设计_家庭清洁机器人毕业设计
  12. 原型工具axure7.0
  13. 遥感影像计算植被覆盖度FVC
  14. JAVA-实现接入企业微信发送消息(最详细代码讲解!)
  15. 如何将 PDF 转换为 JPG、PNG、TIFF、BMP、GIF?
  16. ZBlog采集插件无需授权远离ZBlog破解版
  17. Java基础学习——第十四章 网络编程
  18. windows远程桌面反向代理
  19. 经典问题:数据有误,一定要重传吗?
  20. knn K近邻算法python实现

热门文章

  1. SLF4J: Failed toString() invocation on an object of type [com.zhao.guang.xiao.top.po.BlogBean$Hibern
  2. 大数据可视化(一)数据可视化概述
  3. 数据库连接中的等值连接、自然连接、外连接、左外连接和右外连接
  4. 算法入侵,不如拥抱、打造更好的个性化推荐系统?
  5. 微信公众平台php开发包
  6. 2021赣网杯web和misc部分wp
  7. iOS 网络性能优化之路
  8. jsp+css实现图片自动轮换
  9. 中长焦投影仪买哪款好,当贝X3高流明热销你值得看
  10. EXCEL,神奇的lookup()函数