JavaScript实现信用卡校验方法


Posted in Javascript onApril 07, 2015

本文实例讲述了JavaScript实现信用卡校验方法。分享给大家供大家参考。具体分析如下:

这里JavaScript版的信用卡校验代码,采用了Luhn算法

function isValidCreditCard(type, ccnum) {
  if (type == "Visa") {
   // Visa: length 16, prefix 4, dashes optional.
   var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
  } else if (type == "MC") {
   // Mastercard: length 16, prefix 51-55, dashes optional.
   var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
  } else if (type == "Disc") {
   // Discover: length 16, prefix 6011, dashes optional.
   var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
  } else if (type == "AmEx") {
   // American Express: length 15, prefix 34 or 37.
   var re = /^3[4,7]\d{13}$/;
  } else if (type == "Diners") {
   // Diners: length 14, prefix 30, 36, or 38.
   var re = /^3[0,6,8]\d{12}$/;
  }
  if (!re.test(ccnum)) return false;
  // Remove all dashes for the checksum 
  //checks to eliminate negative numbers
  ccnum = ccnum.split("-").join("");
  // Checksum ("Mod 10")
  // Add even digits in even length strings 
  //or odd digits in odd length strings.
  var checksum = 0;
  for (var i=(2-(ccnum.length % 2)); i<=ccnum.length; i+=2) {
   checksum += parseInt(ccnum.charAt(i-1));
  }
  // Analyze odd digits in even length strings
  //or even digits in odd length strings.
  for (var i=(ccnum.length % 2) + 1; i<ccnum.length; i+=2) {
   var digit = parseInt(ccnum.charAt(i-1)) * 2;
   if (digit < 10) { checksum += digit; }
   else { checksum += (digit-9); }
  }
  if ((checksum % 10) == 0) return true; else return false;
}

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript 事件处理程序介绍
Jun 27 Javascript
JQuery插入DOM节点的方法
Jun 11 Javascript
javascript实现超炫的向上滑行菜单实例
Aug 03 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
全面总结Javascript对数组对象的各种操作
Jan 22 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
Jul 07 Javascript
通过button将form表单的数据提交到action层的实例
Sep 08 Javascript
微信小程序数据分析之自定义分析的实现
Aug 17 Javascript
详解vue-cli3 中跨域解决方案
Apr 10 Javascript
JS中超越现实的匿名函数用法实例分析
Jun 21 Javascript
JavaScript实现简单的计算器
Jan 16 Javascript
JavaScript简单编程实例学习
Feb 14 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 #Javascript
JavaScript使用指针操作实现约瑟夫问题实例
Apr 07 #Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
Apr 07 #Javascript
JavaScript中字符串分割函数split用法实例
Apr 07 #Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
Apr 07 #Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 #Javascript
JS 作用域与作用域链详解
Apr 07 #Javascript
You might like
解决File size limit exceeded 错误的方法
2013/06/14 PHP
测试php函数的方法
2013/11/13 PHP
php反射应用示例
2014/02/25 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
python生成日历实例解析
2014/08/21 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
python清除函数占用的内存方法
2018/06/25 Python
python 调用钉钉机器人的方法
2019/02/20 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
numpy库reshape用法详解
2020/04/19 Python
工程造价专业大专生求职信
2013/10/06 职场文书
管理科学大学生求职信
2013/11/13 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
学校运动会报道稿
2014/09/23 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
作文之亲情600字
2019/09/23 职场文书
详解Redis基本命令与使用场景
2021/06/01 Redis
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android