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 验证表单(form)中的单选(radio)值
Sep 08 Javascript
javascript cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 Javascript
jQuery中:last选择器用法实例
Dec 30 Javascript
使用mouse事件实现简单的鼠标经过特效
Jan 30 Javascript
jquery ztree异步搜索(搜叶子)实践
Feb 25 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
Dec 13 Javascript
用JavaScript实现让浏览器停止载入页面的方法
Jan 19 Javascript
js中比较两个对象是否相同的方法示例
Sep 02 Javascript
vue 实现购物车总价计算
Nov 06 Javascript
js页面加载后执行的几种方式小结
Jan 30 Javascript
JavaScript canvas仿代码流瀑布
Feb 10 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
php设计模式 Singleton(单例模式)
2011/06/26 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
js自动生成对象的属性示例代码
2013/10/28 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
JS作用域链详解
2017/06/26 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python下singleton模式的实现方法
2014/07/16 Python
python对数组进行反转的方法
2015/05/20 Python
关于python多重赋值的小问题
2019/04/17 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
客房主管岗位职责
2013/12/09 职场文书
家教广告词
2014/03/19 职场文书
爱情保证书大全
2014/04/29 职场文书
行政上诉状范文
2015/05/23 职场文书
神秘岛读书笔记
2015/07/01 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
Python办公自动化PPT批量转换操作
2021/09/15 Python
Python的三个重要函数详解
2022/01/18 Python
解析MySQL索引的作用
2022/03/03 MySQL