Guest User

js ex

a guest
May 4th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function validateCreditCard(creditCardNum){
  2.  
  3.   //Remove dashes from creditCardNum string
  4.   var ccNumberNoDashes = '';
  5.   for (var i = 0; i < creditCardNum.length; i++) {
  6.     if(creditCardNum[i] !== '-'){
  7.       ccNumberNoDashes += creditCardNum[i];
  8.     }
  9.   }
  10.  
  11.   // The credit card number must be 16 digits in length
  12.   if(ccNumberNoDashes.length !== 16){
  13.     return false;
  14.   }
  15.  
  16.   // All of the digits must be numbers
  17.   for(var i = 0; i < ccNumberNoDashes.length; i++){        
  18.     // store the current digit
  19.     var currentNumber = ccNumberNoDashes[i];
  20.  
  21.     // turn the digit from a string to an integer (if the digit is in fact a digit and not anther char)
  22.     currentNumber = Number.parseInt(currentNumber);
  23.  
  24.     // check that the digit is a number
  25.     if(!Number.isInteger(currentNumber)){
  26.       return false;
  27.     }
  28.   }
  29.  
  30.   // The credit card number must be composed of at least two different digits (i.e. all of the digits cannot be the same)
  31.   var obj = {};
  32.   for(var i = 0; i < ccNumberNoDashes.length; i++){
  33.     obj[ccNumberNoDashes[i]] = true;
  34.   }
  35.   if(Object.keys(obj).length < 2){
  36.     return false;
  37.   }
  38.  
  39.   // The final digit of the credit card number must be even
  40.   if(ccNumberNoDashes[ccNumberNoDashes.length - 1] % 2 !== 0){
  41.     return false;
  42.   }
  43.  
  44.   // The sum of all the digits must be greater than 16
  45.   var sum = 0;
  46.   for(var i = 0; i < ccNumberNoDashes.length; i++){
  47.     sum += Number(ccNumberNoDashes[i]);
  48.   }
  49.   if(sum <= 16){
  50.     return false;
  51.   }
  52.  
  53.   return true;
  54. };
  55.  
  56. /**** tests *****/
  57. console.log(validateCreditCard('9999-9999-8888-0000')); //true
  58. console.log(validateCreditCard('6666-6666-6666-1666')); //true
  59. console.log(validateCreditCard('a923-3211-9c01-1112')); //false
  60. console.log(validateCreditCard('4444-4444-4444-4444')); //false
  61. console.log(validateCreditCard('1211-1111-1111-1112')); //true
Advertisement
Add Comment
Please, Sign In to add comment