使用Jquery进行信用卡验证

时间:2009-11-06 20:09:36

标签: jquery validation credit-card

我正在尝试使用jQuery验证信用卡号,但我不想使用验证插件,是否还有其他插件可以执行此操作?

3 个答案:

答案 0 :(得分:11)

http://en.wikipedia.org/wiki/Luhn_algorithm

您可以将以下内容最小化为代码中的一小部分。

function isCreditCard( CC )
 {                        
      if (CC.length > 19)
           return (false);

      sum = 0; mul = 1; l = CC.length;
      for (i = 0; i < l; i++)
      {
           digit = CC.substring(l-i-1,l-i);
           tproduct = parseInt(digit ,10)*mul;
           if (tproduct >= 10)
                sum += (tproduct % 10) + 1;
           else
                sum += tproduct;
           if (mul == 1)
                mul++;
           else
                mul--;
      }
      if ((sum % 10) == 0)
           return (true);
      else
           return (false);
 }

答案 1 :(得分:2)

如果您想确定其有效的卡号,则需要检查的数字远远超过Luhn数字。

Luhn数字仅用于检查转置错误,并且很容易被数字欺骗,例如22222222222222222

应检查卡号的前六位数字。这些数字称为发行者识别号,可用于确保该号码在识别范围内。不幸的是,你很难找到一份全面的IIN列表,尤其是因为发行人不断添加和删除范围。维基百科有一个非常基本的概述:Bank card number

如果您可以从IIN确定卡片类型,那么您也可以尝试验证该号码的长度。

除非你有充分的理由,否则更容易使用像验证插件这样的东西。

答案 2 :(得分:0)

我建议您使用 正则表达式 ... 您可以查看我的存储库我有一个代码片段来验证Visa,万事达卡,发现,美国快递和安全代码

<强> https://github.com/leojavier/RegexCollection


请记住......仅仅因为限制数字量并不意味着它是正确的。

例如:
- 所有Visa卡号码均以4开头。新卡有16位数字 - 所有万事达卡号码均以数字51至55开头。所有号码均为16位数字。 等等...

index.html是一个示例,向您展示如何使用它!如果您有任何问题,请随时给我写信:)