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实现Sleep暂停功能代码
Sep 03 Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 Javascript
js捕捉键盘事件和按键键值的方法
Oct 10 Javascript
JQuery Ajax WebService传递参数的简单实例
Nov 02 Javascript
vue中使用ueditor富文本编辑器
Feb 08 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
JS中DOM元素的attribute与property属性示例详解
Sep 04 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
Nov 13 Javascript
JavaScript从原型到原型链深入理解
Jun 03 Javascript
JS事件流与事件处理程序实例分析
Aug 16 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
Feb 14 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
Feb 06 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
laravel 4安装及入门图文教程
2014/10/29 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
js函数内变量的作用域分析
2015/01/12 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
利用CDN加速react webpack打包后的文件详解
2018/02/22 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
python3.3实现乘法表示例
2014/02/07 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
transform python环境快速配置方法
2018/09/27 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
Python实现壁纸下载与轮换
2020/10/19 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
十八届三中全会个人学习材料
2014/02/13 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
python+opencv实现目标跟踪过程
2022/06/21 Python