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 相关文章推荐
JavaScript 图片预览效果 推荐
Dec 22 Javascript
jquery下将选择的checkbox的id组成字符串的方法
Nov 28 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
Nov 26 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
May 04 Javascript
js微信分享API
Oct 11 Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
微信小程序上传文件到阿里OSS教程
May 20 Javascript
vue如何使用外部特殊字体的操作
Jul 30 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
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
详谈javascript异步编程
2016/02/21 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
vue实现记事本功能
2019/06/26 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
JS实现移动端双指缩放和旋转方法
2019/12/13 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
详解python statistics模块及函数用法
2019/10/27 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
python sorted函数原理解析及练习
2020/02/10 Python
python可视化text()函数使用详解
2020/02/11 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Python sorted对list和dict排序
2020/06/09 Python
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
体育专业个人的求职信范文
2013/09/21 职场文书
学生会部长竞选稿
2015/11/19 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
《勇者辞职不干了》ED主题曲无字幕动画MV公开
2022/04/13 日漫