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 相关文章推荐
根据分辩率调用不同的CSS.
Jan 08 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 Javascript
jquery 通过name快速取值示例
Jan 24 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
Mar 02 Javascript
bootstrap PrintThis打印插件使用详解
Feb 20 Javascript
js实现单张图片平移切换效果
Oct 11 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
Oct 23 Javascript
vue实现底部菜单功能
Jul 24 Javascript
vue.extend与vue.component的区别和联系
Sep 19 Javascript
详解ES6中的Map与Set集合
Mar 22 Javascript
Nuxt.js实战和配置详解
Aug 05 Javascript
微信小程序pinker组件使用实现自动相减日期
May 07 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
PHP时间戳使用实例代码
2008/06/07 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
深入PHP curl参数的详解
2013/06/17 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
批处理与python代码混合编程的方法
2016/05/19 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
python数字类型math库原理解析
2020/03/02 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
英国高街电视:High Street TV
2018/05/22 全球购物
怎么写自荐书范文
2014/02/12 职场文书
工程资料员岗位职责
2015/04/13 职场文书
react中的DOM操作实现
2021/06/30 Javascript