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 load()加载GB2312页面时出现乱码的两种方案
Sep 10 Javascript
JavaScript数组各种常见用法实例分析
Aug 04 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
Dec 10 Javascript
详解JavaScript中的构造器Constructor模式
Jan 14 Javascript
AngularJS入门心得之directive和controller通信过程
Jan 25 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
Vue.js仿微信聊天窗口展示组件功能
Aug 11 Javascript
详解webpack性能优化——DLL
Oct 20 Javascript
详解Vue 动态组件与全局事件绑定总结
Nov 11 Javascript
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
Array.filter中如何正确使用Async
Nov 04 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操作memcache缓存方法分享
2015/06/03 PHP
初识ThinkPHP控制器
2016/04/07 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
网上抓的一个特效
2007/05/11 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
师范毕业生个人求职信
2013/12/09 职场文书
客服部班长工作责任制
2014/02/25 职场文书
元旦获奖感言
2014/03/08 职场文书
党建工作经验交流材料
2014/05/25 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python
我去timi了,一起去timi是什么意思?
2022/04/13 杂记