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

验证信用卡号的一种常用方法是通过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 运行时 JavaScript 运行时是指 JavaScript 的运行环境,主要由浏览器的 JavaScript 引擎和一些 API 组成,以及 Node.js 等 JavaScript 运行时库。JavaScript 运行时库属性一览表是指常见的 Java…

    JavaScript 2023年6月10日
    00
  • 用javascript做一个小游戏平台 (二) 游戏选择器

    下面就让我来详细讲解如何用 JavaScript 做一个小游戏平台。 游戏选择器 游戏选择器是一个可以让用户选择游戏的组件,我们需要实现以下功能: 显示游戏的缩略图和名称。 点击缩略图或名称可以进入游戏。 可以添加新游戏。 首先,我们需要初始化一个游戏列表。我们可以使用一个存储游戏信息的对象数组来存储游戏列表。每个游戏对象都应该包含游戏名称、游戏缩略图、游戏…

    JavaScript 2023年6月10日
    00
  • JS正则表达式验证数字代码

    下面我将详细讲解 JS 正则表达式验证数字代码的完整攻略。 步骤 1. 构建正则表达式 首先需要构建一个用于验证数字的正则表达式。一般来说,数字可以包含整数和小数,还可能有正负号。 验证整数和小数的正则表达式如下: /^-?\d+(\.\d+)?$/ 其中: ^ 表示字符串开始 -? 表示可以有一个可选的负号 \d+ 表示至少一个数字 (\.\d+)? 表示…

    JavaScript 2023年6月10日
    00
  • 浅谈regExp的test方法取得的值变化的原因及处理方法

    下面是“浅谈regExp的test方法取得的值变化的原因及处理方法”的完整攻略: 什么是regExp的test方法 RegExp是JavaScript中的正则表达式对象,test()是它的一个方法,用于测试一个字符串是否符合某个正则表达式的匹配规则。test()方法返回一个布尔值,如果符合规则则返回true,否则返回false。 let str = ‘abc…

    JavaScript 2023年6月10日
    00
  • JS正则表达式修饰符中multiline(/m)用法分析

    JS正则表达式修饰符中multiline(/m)用法是指让正则表达式中的锚点(^和$)可以匹配字符串的多行文本,而不是只匹配整个字符串的开头和结尾。下面是该修饰符的用法分析: multiline(/m)用法分析 多行模式(/m)是JS正则表达式中的一个修饰符,它可以让正则表达式中的锚点(^和$)匹配多行文本。 多行模式(/m)示例 举个例子,假设有以下字符串…

    JavaScript 2023年5月28日
    00
  • Javascript Math tan() 方法

    JavaScript中的Math.SQRT2属性是一个常数,表示2的平方根。以下是关于Math.SQRT2属性的完整攻略,含两个示例。 JavaScript Math对象的SQRT2属性 JavaScript的SQRT2属性是一个常数,表示2的平方根。下面是SQRT2属性的语法: Math.SQRT2 下面是一个SQRT2属性的示例: console.log…

    JavaScript 2023年5月11日
    00
  • js同源策略详解

    JS同源策略详解:什么是同源? 在网站开发中,我们常常会遇到 JS 同源策略,那么什么是同源?为什么同源策略这么重要?这篇文章将为你一一解答。 同源(Same-origin)是由同一个协议(protocol)、主机名(host)和端口号(port)组成,若三者相同,则是同源。例如: https://www.example.com 和 https://www.…

    JavaScript 2023年6月11日
    00
  • js截取字符串功能的实现方法

    下面是关于JS字符串截取功能的实现方法攻略: 一、JavaScript截取字符串的substr()方法 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。 语法: string.substr(start,length) 其中: start 是一个非负整数,表示想要开始抽取的位置 length 是一个非负整数,表示抽取的字符个数 …

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