Javascript验证Visa和MasterCard信用卡号的方法

yizhihongxing

验证信用卡号的一种常用方法是通过Luhn算法,该算法有一个基本的规则:把信用卡号从右往左依次编号为0到n,其中最右边一位编号为0,然后对于每个奇数编号的数字乘以二,如果乘以二后的结果大于9,则将结果的各位数字相加,得到一个两位数的数字。

接着,将所有乘以二的数字和除了乘以二的数字的和相加,如果得到的和可以被10整除,则该信用卡号为合法的信用卡号。以下是一个检验Visa信用卡号的例子:

function isValidVisaCreditCardNumber(cardNumber) {
  if (/[^0-9-\s]+/.test(cardNumber)) return false; //校验是否是纯数字
  let nCheck = 0,
      bEven = false;
  cardNumber = cardNumber.replace(/\D/g, ""); //去掉非数字字符
  for (let n = cardNumber.length - 1; n >= 0; n--) {
    let cDigit = cardNumber.charAt(n),
        nDigit = parseInt(cDigit, 10);
    if (bEven && (nDigit *= 2) > 9) nDigit -= 9;
    nCheck += nDigit;
    bEven = !bEven;
  }
  return (nCheck % 10) == 0;
}
//可以检验Visa信用卡号的函数

对于MasterCard信用卡号的验证,有以下代码:

function isValidMasterCardCreditCardNumber(cardNumber) {
  if (/[^0-9-\s]+/.test(cardNumber)) return false; //校验是否是纯数字
  let nCheck = 0,
      bEven = false;
  cardNumber = cardNumber.replace(/\D/g, ""); //去掉非数字字符
  for (let n = cardNumber.length - 1; n >= 0; n--) {
    let cDigit = cardNumber.charAt(n),
        nDigit = parseInt(cDigit, 10);
    if (bEven) {
      if ((nDigit *= 2) > 9) nDigit -= 9;
    }
    nCheck += nDigit;
    bEven = !bEven;
  }
  return (nCheck % 10) == 0 && (cardNumber.charAt(0) == "5" && cardNumber.charAt(1) >= "1" && cardNumber.charAt(1) <= "5"); //检查主要的数字及其范围
}
//可以检验MasterCard信用卡号的函数

以上两个函数的参数都是一个字符串类型的信用卡号,如果验证成功则返回true,否则返回false。可以在自己编写的网站中调用这些函数来进行Visa、MasterCard信用卡号的验证。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript验证Visa和MasterCard信用卡号的方法 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • javascript操作符”!~”详解

    JavaScript操作符 “!~” 详解 操作符说明 在 JavaScript 中,符号 “!~” 是两个操作符的组合。 其中 “!” 是逻辑否定运算符,用于将一个布尔值取反。如果原值为 true,则取反后的值为 false。如果原值为 false,则取反后的值为 true。 而 “~” 是位运算符 NOT,它将操作数的每个二进制位按位取反(0 变为 1 …

    JavaScript 2023年5月17日
    00
  • JS实现可拖曳、可关闭的弹窗效果

    实现可拖拽、可关闭的弹窗效果需要借助JavaScript和CSS的帮助。主要的实现步骤如下: 步骤一:HTML结构 先定义一个弹窗的HTML结构,包括一个模态框、一个标题、一个内容和两个关闭按钮: <div class="modal"> <div class="modal-header"> &l…

    JavaScript 2023年6月11日
    00
  • JavaScript实现删除,移动和复制文件的方法

    下面就是“JavaScript实现删除、移动和复制文件的方法”的完整攻略。 删除文件 使用 XMLHttpRequest 对象和 AJAX 可以先准备一个简单的页面,其中有一个表单用来选择要删除的文件或文件夹,还有一个删除按钮用来触发删除操作。然后在需要执行删除的那个按钮上添加一个点击事件,将所选中的文件或文件夹通过 AJAX 上传到服务器端进行删除。代码如…

    JavaScript 2023年5月27日
    00
  • JavaScript实现字符雨效果

    JavaScript实现字符雨效果 在网页上实现字符雨效果,可以通过在HTML的body元素中添加一个全屏的canvas元素,然后使用JavaScript编写一个动画效果,不断更新canvas中的字符颜色和位置,从而实现字符雨效果。 准备工作 在HTML中添加一个全屏的canvas元素 <canvas id="matrix-canvas&qu…

    JavaScript 2023年5月28日
    00
  • js树插件zTree获取所有选中节点数据的方法

    获取所有选中节点数据是使用 js 树插件 zTree 时非常常见且实用的功能。下面是获取所有选中节点数据的几个常用方法: 1. zTree 对象的 getCheckedNodes 方法: zTree 提供了一个名为 getCheckedNodes 的方法,可以轻松地获得所有选中的节点数据。该方法返回一个数组,包含所有选中节点的数据对象。可以通过遍历该数组来获…

    JavaScript 2023年6月11日
    00
  • Javascript动画插件lottie-web的使用方法

    下面是“Javascript动画插件lottie-web的使用方法”的详细攻略。 什么是lottie-web lottie-web是一个轻量级的Javascript动画插件,它可以将Adobe After Effects制作的动画(.json格式)在Web上以矢量形式呈现。 如何使用lottie-web 1. 下载lottie-web 你可以通过npm包管理…

    JavaScript 2023年6月10日
    00
  • 如何让你的JavaScript函数更加优雅详解

    如何让你的JavaScript函数更加优雅详解 在编写JavaScript代码时,如何编写更加优雅的函数是一个值得探究的话题。下面,我们来一步步探讨如何让你的JavaScript函数更加优雅。 1.减少函数参数的数量 函数的参数数量应该尽可能的少,通常在3个以内是比较合适的。这样做的好处是可以避免函数的复杂性并提高代码的可读性,同时也可以提高代码的重用性和可…

    JavaScript 2023年5月27日
    00
  • 关于javascript模块加载技术的一些思考

    关于 JavaScript 模块加载技术的一些思考 什么是模块加载技术? JavaScript 作为一门基于对象的语言,可以使用函数和对象等抽象概念来组织代码。在应用程序越来越庞大的情况下,我们需要将代码分割成多个模块,这样既方便代码管理,也有利于代码的可重用性。模块加载技术就是将模块引入到应用程序中,以便让应用程序能够使用模块提供的功能。 JavaScri…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部