|  |  |  |  | 
		
			|  |  
			|  |  |  |  
			|  |  |  | 
				
					|  |  
					| 			| Regular Expressions | 									| Language: | JavaScript |  				| Author: | Jon Lokken |  				| Date: | 3-12-2015 |  |  		| 
 |  		| Description: |  |  		| Use a regular expression to validate a credit card number before processing via the Luhn algorithm.  Sample card numbers can be found at Paypal. 
 |  
 
 Visa Card: Cards start with a 4 and have either 13 or 16 digits.
 RegExp: ^4[0-9]{12}(?:[0-9]{3})?$
 
 Master Cards: Cards start with a 51-55 and have 16 digits.
 RegExp: ^5[1-5][0-9]{14}$
 
 American Express: Cards start with a 34 or 37 and have 15 digits.
 RegExp: ^3[47][0-9]{13}$
 
 Diners Club: Cards start with a 300-305, 36 or 38 and have 14 digits. Some start with a 5 and have 16 digits.  These are joint venture cards between Diners Club and Mastercard.  The joint cards should be processed like a MasterCard.
 RegExp: ^3(?:0[0-5]|[68][0-9])[0-9]{11}$
 
 Discover: Discover Cards start with a 6011 or 65 and have 16 digits.
 RegExp: ^6(?:011|5[0-9]{2})[0-9]{12}$
 
 JCB: Cards start with a 2131 or 1800 and have 15 digits. Some start with a 35 and have 16 digits.
 RegExp: ^(?:2131|1800|35[0-9]{3})[0-9]{11}$
 
 
 Luhn Algorithm:
 function valid_credit_card(value) {
 if (/[^0-9-\s]+/.test(value)) return false;
 var nCheck = 0, nDigit = 0, bEven = false;
 value = value.replace(/\D/g, "");
 for (var n = value.length - 1; n >= 0; n--) {
 var cDigit = value.charAt(n),
 nDigit = parseInt(cDigit, 10);
 if (bEven) {
 if ((nDigit *= 2) > 9) nDigit -= 9;
 }
 nCheck += nDigit;
 bEven = !bEven;
 }
 return (nCheck % 10) == 0;
 }
 
 
 Test CardsCredit Card Type: Credit Card Number
 American Express: 378282246310005
 American Express: 371449635398431
 American Express Corporate: 378734493671000
 Australian BankCard: 5610591081018250
 Diners Club: 30569309025904
 Diners Club: 38520000023237
 Discover: 6011111111111117
 Discover: 6011000990139424
 JCB: 3530111333300000
 JCB: 3566002020360505
 MasterCard: 5555555555554444
 MasterCard: 5105105105105100
 Visa: 4111111111111111
 Visa: 4012888888881881
 Visa: 4222222222222Note : Even though this number has a different character count than the other test numbers, it is the correct and functional number.Processor-specific Cards
 Dankort (PBS): 76009244561
 Dankort (PBS): 5019717010103742
 Switch/Solo (Paymentech): 6331101999990016
 
 
 			| Disclaimer: |  		| Feel free to use this tool.   I take no responsibility for this 		code working, imply no warranty as to it's validity, and will not be 		held liable if you decide to try it. |  |  
					|  |  |  |  |  |  
			|  |  |  |  
			|  |  |