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 相关文章推荐
基于jquery的复制网页内容到WORD的实现代码
Feb 16 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
May 07 Javascript
父页面显示遮罩层弹出半透明状态的dialog
Mar 04 Javascript
jQuery实现图片向左向右切换效果的简单实例
May 18 Javascript
完美解决IE不支持Data.parse()的问题
Nov 24 Javascript
简单实现js浮动框
Dec 13 Javascript
xmlplus组件设计系列之列表(4)
Apr 26 Javascript
JavaScript 用fetch 实现异步下载文件功能
Jul 21 Javascript
js下拉菜单生成器dropMenu使用方法详解
Aug 01 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
浅谈Vue 自动化部署打包上线
Jun 14 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
Aug 06 Javascript
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
PHP安装问题
2006/10/09 PHP
PHP 文件缓存的性能测试
2010/04/25 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
PHP多文件上传类实例
2015/03/07 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
bootstrap输入框组使用方法
2017/02/07 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
通过Python实现自动填写调查问卷
2017/09/06 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
python学生管理系统开发
2019/01/30 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
Python文件操作函数用法实例详解
2019/12/24 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
东方通信股份有限公司VC面试题
2014/08/27 面试题
How to spawning asynchronous work in J2EE
2016/08/29 面试题
大三自我鉴定范文
2013/10/05 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
退休感言
2014/01/28 职场文书
学者《孟子》名人名言
2019/08/09 职场文书