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 相关文章推荐
jQuery 开天辟地入门篇一
Dec 09 Javascript
js中取得变量绝对值的方法
Jan 03 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
Mar 04 Javascript
JavaScript通过事件代理高亮显示表格行的方法
May 27 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
Mar 17 Javascript
jQuery实现选中行变色效果(实例讲解)
Jul 06 jQuery
vue组件name的作用小结
May 23 Javascript
详解一个基于react+webpack的多页面应用配置
Jan 21 Javascript
JS实现的点击按钮图片上下滚动效果示例
Jan 28 Javascript
webpack4 SplitChunks实现代码分隔详解
May 23 Javascript
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
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设计模式 Bridge (桥接模式)
2011/06/26 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
详细探究Python中的字典容器
2015/04/14 Python
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
简单实现python爬虫功能
2015/12/31 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Python Django 命名空间模式的实现
2019/08/09 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
职业生涯规划书前言
2014/04/15 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
岗位职责说明书模板
2014/07/30 职场文书
普通党员对照检查材料
2014/08/28 职场文书
生死抉择观后感
2015/06/09 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
2016年寒假家长评语
2015/10/10 职场文书
趣味运动会标语口号
2015/12/26 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
css height属性中的calc方法详解
2021/06/03 HTML / CSS
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers