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 vvorld 在线加密破解方法
Nov 13 Javascript
15 个 JavaScript Web UI 库
May 19 Javascript
jquery 插件开发备注
Aug 27 Javascript
javaScript复制功能调用实现方案
Dec 13 Javascript
javascript 树形导航菜单实例代码
Aug 13 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 Javascript
AngularJS ng-bind 指令简单实现
Jul 30 Javascript
jquery仿苹果的时间/日期选择效果
Mar 08 Javascript
vue.js事件处理器是什么
Mar 20 Javascript
vue监听input标签的value值方法
Aug 27 Javascript
layer弹出层扩展主题的方法
Sep 11 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
PHP安装全攻略:APACHE
2006/10/09 PHP
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
Javascript - HTML的request类
2006/07/15 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
js图片预加载示例
2014/04/30 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
python实现k-means聚类算法
2018/02/23 Python
Python 变量的创建过程详解
2019/09/02 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
使用css如何制作时间ICON方法实践
2012/11/12 HTML / CSS
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
学习雷锋精神演讲稿
2014/05/10 职场文书
学校节能减排倡议书
2014/05/16 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
诉讼和解协议书
2016/03/23 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
angular异步验证器防抖实例详解
2022/03/31 Javascript