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 相关文章推荐
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 Javascript
node在两个div之间移动,用ztree实现
Mar 06 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
jquery+css实现动感的图片切换效果
Nov 25 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
May 16 Javascript
jQuery下拉框的简单应用
Jun 24 Javascript
JSONP和批量操作功能的实现方法
Aug 21 Javascript
AngularJS表单基本操作
Jan 09 Javascript
ES6生成器用法实例分析
Apr 10 Javascript
JS利用cookies设置每隔24小时弹出框
Apr 20 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
Aug 03 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
Nov 16 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
举例介绍Python中的25个隐藏特性
2015/03/30 Python
处理Python中的URLError异常的方法
2015/04/30 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
学python最电脑配置有要求么
2020/07/05 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
解释一下钝化(Swap out)
2016/12/26 面试题
哈理工毕业生的求职信
2013/12/22 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
软件售后服务承诺书
2014/05/21 职场文书
司机岗位职责说明书
2014/07/29 职场文书
政风行风评议心得体会
2014/10/21 职场文书
自主招生自荐信范文
2015/03/04 职场文书
大学感恩节活动总结
2015/05/05 职场文书