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 相关文章推荐
表单提交时自动复制内容到剪贴板的js代码
Mar 16 Javascript
Javascript绝句欣赏 一些经典的js代码
Feb 22 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
May 14 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
Sep 24 Javascript
浅析AngularJs HTTP响应拦截器
Dec 28 Javascript
实例讲解JavaScript中instanceof运算符的用法
Jun 08 Javascript
JS中with的替代方法与String中的正则方法详解
Dec 23 Javascript
bootstrap table动态加载数据示例代码
Mar 25 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
微信小程序从注册账号到上架(图文详解)
Jul 17 Javascript
浅谈layer弹出层按钮颜色修改方法
Sep 11 Javascript
理解JavaScript中的对象
Aug 25 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调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
简洁的十分钟Python入门教程
2015/04/03 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
Python实现随机漫步功能
2018/07/09 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
JAVA代码查错题
2014/10/10 面试题
商场促销活动方案
2014/02/08 职场文书
物理教学随笔感言
2014/02/22 职场文书
四年级评语大全
2014/04/21 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
使用Python解决图表与画布的间距问题
2022/04/11 Python