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 flash复制库类 Zero Clipboard
Jan 17 Javascript
js两行代码按指定格式输出日期时间
Oct 21 Javascript
js图片延迟加载的实现方法及思路
Jul 22 Javascript
jQuery实现div浮动层跟随页面滚动效果
Feb 11 Javascript
JavaScript判断数组是否存在key的简单实例
Aug 03 Javascript
jQuery实现的购物车物品数量加减功能代码
Nov 16 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
Bootstrap CSS布局之图像
Dec 17 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
React Native基础入门之初步使用Flexbox布局
Jul 02 Javascript
js常见遍历操作小结
Jun 06 Javascript
JS桶排序的简单理解与实现方法示例
Nov 25 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
自动跳转中英文页面
2006/10/09 PHP
用PHP调用数据库的存贮过程!
2006/10/09 PHP
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
php whois查询API制作方法
2011/06/23 PHP
thinkphp缓存技术详解
2014/12/09 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
python pickle 和 shelve模块的用法
2013/09/16 Python
在Python中编写数据库模块的教程
2015/04/29 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
python如何把字符串类型list转换成list
2020/02/18 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
公司部门司机岗位职责
2014/01/03 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
广告业务员岗位职责
2014/02/06 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
班主任对学生的评语
2014/04/26 职场文书
股指期货心得体会
2014/09/13 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
暑假社会实践证明格式
2014/10/28 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
Python数据结构之队列详解
2022/03/21 Python
MySQL创建管理LIST分区
2022/04/13 MySQL