JavaScript Credit Card Validation

I was reading 2600 on the bus recently and came across a credit generation algorithms which got me thinking… if you are building a web application that charges credit cards, at which point would card validation make most sense? I came to the conclusion that an efficient system, would check the credit card number was valid on the client side. This way there is little-to-no network traffic containing invalid card numbers.

Checking credit card numbers is actually pretty simple. Most services will use something called a Luhn Check, which multiplies odd indices by two, sums their digits and then divides the total sum by ten. If the result of the sum % 10 == 0 then the card number is ‘likely’ to be valid.

I came up with a a short function to validate credit card numbers passed as Strings or Floats.

  var cardValid = function( cardNo ){    
    var sum = 0, iNum;
    for( var i in cardNo+='' ){
      iNum = parseInt(cardNo[i]);
      sum += i%2?iNum:iNum>4?iNum*2%10+1:iNum*2;
    }
    return !(sum%10);
  };

To use this function, just call cardValid( cardNo ) which will return either true or false.

This entry was posted by Al MacDonald on February 22, 2010 in JavaScript.

Comments

Author

This entry was posted by Al MacDonald on February 22, 2010 in JavaScript.

Recent posts from this author

Related on the Bocoup Blog

Advertisement

Twitter

Google+