Skip To Main Content

JavaScript Credit Card Validation

Posted by Alistair Macdonald

Feb 22 2010

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.

Posted by
Alistair Macdonald
on February 22nd, 2010

Comments

We moved off of Disqus for data privacy and consent concerns, and are currently searching for a new commenting tool.

Contact Us

We'd love to hear from you. Get in touch!