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引起的内存泄漏问题
Oct 08 Javascript
js实现弹窗插件功能实例代码分享
Dec 12 Javascript
js AppendChild与insertBefore用法详细对比
Dec 16 Javascript
js设置控件的隐藏与显示的两种方法
Aug 21 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
Sep 01 Javascript
JavaScript事件委托技术实例分析
Feb 06 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
JavaScript面向对象的实现方法小结
Apr 14 Javascript
JavaScript实现页面跳转的方式汇总
May 16 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
JS实现可以用键盘方向键控制的动画
Dec 11 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 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
TensorFlow实现Logistic回归
2018/09/07 Python
python取余运算符知识点详解
2019/06/27 Python
python属于解释语言吗
2020/06/11 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
村委会主任先进事迹
2014/01/15 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
MySQL中连接查询和子查询的问题
2021/09/04 MySQL