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实现滑块滑动改变值的实现代码
Apr 12 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
Oct 22 Javascript
单击某一段文字改写文本颜色
Jun 06 Javascript
JavaScript浮点数及运算精度调整详解
Oct 21 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
AngularJS中的作用域实例分析
May 16 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
详解webpack loader和plugin编写
Oct 12 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
Mar 08 Javascript
koa大型web项目中使用路由装饰器的方法示例
Apr 02 Javascript
新手入门带你学习JavaScript引擎运行原理
Jun 24 Javascript
element-ui如何防止重复提交的方法步骤
Dec 09 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实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
javascript 必知必会之closure
2009/09/21 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
node.js实现爬虫教程
2020/08/25 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python中的函数用法入门教程
2014/09/02 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
python使用正则筛选信用卡
2019/01/27 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
会计工作心得体会
2014/01/13 职场文书
中介业务员岗位职责
2014/04/09 职场文书
物理课外活动总结
2014/08/27 职场文书
工作表现证明
2015/06/15 职场文书
回复函格式及范文
2015/07/14 职场文书