Javascript验证Visa和MasterCard信用卡号的方法


Posted in Javascript onJuly 27, 2015

本文实例讲述了Javascript验证Visa和MasterCard信用卡号的方法。分享给大家供大家参考。具体实现方法如下:

visa验证:

<HTML>
 <head>
  <title>Visa Example</title>
  <script type="text/javascript">
    function luhnCheckSum(sCardNum) {
     var iOddSum = 0;
     var iEvenSum = 0;
     var bIsOdd = true;
     for (var i=sCardNum.length-1; i >= 0; i--) {
      var iNum = parseInt(sCardNum.charAt(i));
      if (bIsOdd) {
       iOddSum += iNum;
      } else {
       iNum = iNum * 2;
       if (iNum > 9) {
        iNum = eval(iNum.toString().split("").join("+"));
       }
       iEvenSum += iNum;
      }
      bIsOdd = !bIsOdd;
     }
     return ((iEvenSum + iOddSum) % 10 == 0);
    }
    function isValidVisa(sText) {
     var reVisa = /^(4\d{12}(?:\d{3})?)$/;
     if (reVisa.test(sText)) {
      return luhnCheckSum(RegExp.$1);
     } else {
      return false;
     }
    }
    function validate() {
     var oInput1 = document.getElementById("txt1");
     if (isValidVisa(oInput1.value)) {
      alert("Valid");
     } else {
      alert("Invalid!");
     }
    }
  </script>
 </head>
 <body>
  <P>Visa Number: <input type="text" id="txt1" /><br />
  <input type="button" value="Validate" onclick="validate()" /></p>
 </body>
</html>

MasterCard验证:

<html>
 <head>
  <title>MasterCard Example</title>
  <script type="text/javascript">
    function luhnCheckSum(sCardNum) {
     var iOddSum = 0;
     var iEvenSum = 0;
     var bIsOdd = true;
     for (var i=sCardNum.length-1; i >= 0; i--) {
      var iNum = parseInt(sCardNum.charAt(i));
      if (bIsOdd) {
       iOddSum += iNum;
      } else {
       iNum = iNum * 2;
       if (iNum > 9) {
        iNum = eval(iNum.toString().split("").join("+"));
       }
       iEvenSum += iNum;
      }
      bIsOdd = !bIsOdd;
     }
     return ((iEvenSum + iOddSum) % 10 == 0);
    }
    function isValidMasterCard(sText) {
     var reMasterCard = /^(5[1-5]\d{2})[\s\-]?(\d{4})[\s\-]?(\d{4})[\s\-]?(\d{4})$/;
     if (reMasterCard.test(sText)) {
      var sCardNum = RegExp.$1 + RegExp.$2 + RegExp.$3 + RegExp.$4;
      return luhnCheckSum(sCardNum);
     } else {
      return false;
     }
    }
    function validate() {
     var oInput1 = document.getElementById("txt1");
     if (isValidMasterCard(oInput1.value)) {
      alert("Valid");
     } else {
      alert("Invalid!");
     }
    }
  </script>
 </head>
 <body>
  <P>MasterCard Number: <input type="text" id="txt1" /><br />
  <input type="button" value="Validate" onclick="validate()" /></p>
 </body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
文本链接逐个出现的js脚本
Dec 12 Javascript
取选中的radio的值
Jan 11 Javascript
微信小程序 简单教程实例详解
Jan 13 Javascript
浅谈js的解析顺序 作用域 严格模式
Oct 23 Javascript
浅析JS抽象工厂模式
Dec 14 Javascript
前端MVVM框架解析之双向绑定
Jan 24 Javascript
js中的闭包学习心得
Feb 06 Javascript
Vue项目使用CDN优化首屏加载问题
Apr 01 Javascript
countUp.js实现数字滚动效果
Oct 18 Javascript
Jquery异步上传文件代码实例
Nov 13 jQuery
如何在vue中使用jointjs过程解析
May 29 Javascript
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
JavaScript实现自动对页面上敏感词进行屏蔽的方法
Jul 27 #Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 #Javascript
JavaScript动态提示输入框输入字数的方法
Jul 27 #Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
Jul 27 #Javascript
JQ技术实现注册页面带有校验密码强度
Jul 27 #Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
Jul 27 #Javascript
在for循环中length值是否需要缓存
Jul 27 #Javascript
You might like
mysq GBKl乱码
2006/11/28 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
JavaScript 学习笔记(十二) dom
2010/01/21 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
javascript正则表达式总结
2016/02/29 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
python机器学习之决策树分类详解
2017/12/20 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
python实现SOM算法
2018/02/23 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
django 将model转换为字典的方法示例
2018/10/16 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
哈理工毕业生的求职信
2013/12/22 职场文书
运动会领导邀请函
2014/01/10 职场文书
班级入场式解说词
2014/02/01 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
歌舞青春观后感
2015/06/10 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python