Credit Card validation with Jquery

倾然丶 夕夏残阳落幕 提交于 2019-11-30 05:21:39

问题


I'm trying to validate credit card numbers with jQuery but i dont want to use the validation plugin , is there any other plugin for doing this?


回答1:


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

You could minimize this below into a very small footprint in your code.

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);
 }



回答2:


If you want to be certain that its a valid card number, you'll need to check much more than the Luhn digit.

The Luhn digit is only intended for checking transposition errors, and can easily be spoofed with numbers such as 22222222222222222

The first six digits of the card number should be checked. These digits are known as the issuer identification number, and can be used to ensure that the number is within a recognised range. Unfortunately you'll struggle to find a comprehensive list of IIN's, not least because issuers are constantly adding and removing ranges. Wikipedia has a very basic overview though: Bank card number

If you can determine the card type from the IIN, you can then have a stab at validating the length of the number also.

Unless you have very good reason, its much easier to use something like a validation plug-in.




回答3:


I recommend you to use Regular expression... You can check my repository I have a code snippet to validate Visa, Master card, Discovery, american express and the Security code

https://github.com/leojavier/RegexCollection


Remember... just because you limit the amount of digits doesn't mean it will be right.

for instance:
- All Visa card numbers start with a 4. New cards have 16 digits.
- All MasterCard numbers start with the numbers 51 through 55. All have 16 digits. and so on...

The index.html is a sample, to show you how you can use it! Feel free to write me if you have any questions :)



来源:https://stackoverflow.com/questions/1690057/credit-card-validation-with-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!