views:

841

answers:

3

Hello , 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? thanks

+4  A: 

http://en.wikipedia.org/wiki/Luhn%5Falgorithm

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);
 }
Kyle B.
+1 - Luhn would be the only way to 'validate' it on the client side.
Jason Whitehorn
The Luhn check is really only useful for spotting transposition errors. You would also need to check the issuer identification range (first six digits of the card number) is valid.
PaulG
+1  A: 

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.

PaulG
A: 

A non-jquery javascript for the Luhn function as well as some validation for different card types is available here:

http://webwoman.biz/articles/Forms/NetscapeLibrary/ccnums.html

Could be trivially converted to jQuery.

James Westgate