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下checked取值问题的解决方法
Aug 09 Javascript
javascript在myeclipse中报错的解决方法
Oct 29 Javascript
js获取当前地址 JS获取当前URL的示例代码
Feb 26 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
Oct 17 Javascript
AngularJs Javascript MVC 框架
Jun 20 Javascript
JS动态给对象添加属性和值的实现方法
Oct 21 Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
Aug 27 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
vue实现购物车案例
May 30 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
Nov 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
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
Python多线程实现同步的四种方式
2017/05/02 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
基于python实现文件加密功能
2020/01/06 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
市场总经理岗位职责
2014/04/11 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
争先创优心得体会
2014/09/12 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
南京南京观后感
2015/06/02 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
python获取带有返回值的多线程
2022/05/02 Python
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript