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模拟键盘打字效果的方法
Aug 05 Javascript
js实现左侧网页tab滑动门效果代码
Sep 06 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
全面解析Bootstrap布局组件应用
Feb 22 Javascript
jQuery toggle 代替方法
Mar 22 Javascript
星期几的不同脚本写法(推荐)
Jun 01 Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 Javascript
laydate 显示结束时间不小于开始时间的实例
Aug 11 Javascript
javascript事件监听与事件委托实例详解
Aug 16 Javascript
jQuery实现html可联动的百分比进度条
Mar 26 jQuery
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
Nov 04 Javascript
详解vue中v-for的key唯一性
May 15 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
mysql 搜索之简单应用
2007/04/27 PHP
使用PHP获取网络文件的实现代码
2010/01/01 PHP
php 图片加水印与上传图片加水印php类
2010/05/12 PHP
php操作mongoDB实例分析
2014/12/29 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
PHP安全下载文件的方法
2016/04/07 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
python中如何使用虚拟环境
2020/10/14 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
什么是岗位职责
2013/11/12 职场文书
承诺书的格式范文
2014/03/28 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
远程教育培训心得体会
2016/01/09 职场文书
详解MySQL中的pid与socket
2021/06/15 MySQL