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 相关文章推荐
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
Jan 27 Javascript
replace()方法查找字符使用示例
Oct 28 Javascript
jqplot通过ajax动态画折线图的方法及思路
Dec 08 Javascript
js插件YprogressBar实现漂亮的进度条效果
Apr 20 Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
使用JS中的Replace()方法遇到的问题小结
Oct 20 Javascript
node下使用UglifyJS压缩合并JS文件的方法
Mar 07 Javascript
详解JSON Web Token 入门教程
Jul 30 Javascript
微信小程序实现上传多个文件 超过10个
Mar 30 Javascript
JavaScript实现刮刮乐效果
Nov 01 Javascript
原生JavaScript实现随机点名表
Jan 14 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
js遍历td tr等html元素
2012/12/13 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
python爬取51job中hr的邮箱
2016/05/14 Python
python 内置函数filter
2017/06/01 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
python Timer 类使用介绍
2020/12/28 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
国庆节文艺活动方案
2014/02/03 职场文书
2014年环保局工作总结
2014/12/11 职场文书
大一学生个人总结
2015/02/15 职场文书
python文件目录操作之os模块
2021/05/08 Python