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实现图片旋转的三种方法
Apr 10 Javascript
jquery map方法使用示例
Apr 23 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
Dec 19 Javascript
js实现继承的5种方式
Dec 01 Javascript
浅谈JavaScript函数的四种存在形态
Jun 08 Javascript
vue指令以及dom操作详解
Mar 04 Javascript
Express使用html模板的详细代码
Sep 18 Javascript
详解在Vue中有条件地使用CSS类
Sep 30 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 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中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
帝国cms目录结构分享
2015/07/06 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
php实现微信模板消息推送
2018/03/30 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
Javascript中的数学函数
2007/04/04 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
vue3.0 上手体验
2020/09/21 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
Python中list查询及所需时间计算操作示例
2018/06/21 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
《九色鹿》教学反思
2014/02/27 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
信用卡工资证明格式
2014/09/13 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
初中思想品德教学反思
2016/02/24 职场文书
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA