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 锁定弹出层实现代码
Feb 23 Javascript
js DOM 元素ID就是全局变量
Sep 20 Javascript
js简单实现用户注册信息的校验代码
Nov 15 Javascript
14个有用的Jquery技巧分享
Jan 08 Javascript
js实现DOM走马灯特效的方法
Jan 21 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
Sep 22 Javascript
Javascript数组Array基础介绍
Mar 13 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
Oct 10 Javascript
layui实现checkbox的目录树tree的例子
Sep 12 Javascript
基于javascript实现贪吃蛇经典小游戏
Apr 10 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
javascript函数式编程基础
Sep 15 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
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
面包屑导航详解
2017/12/07 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
JavaScript实现筛选数组
2021/03/02 Javascript
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
python中time、datetime模块的使用
2020/12/14 Python
2014新课程改革心得体会
2014/03/10 职场文书
授权委托书样本
2014/09/25 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
个人批评与自我批评
2014/10/15 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
婚庆司仪开场白
2015/05/29 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL