diff --git a/lib/angular-payments.js b/lib/angular-payments.js index 9e7bb49..fb2a94d 100755 --- a/lib/angular-payments.js +++ b/lib/angular-payments.js @@ -617,7 +617,14 @@ angular.module('angularPayments', []);angular.module('angularPayments') typeModel.assign(scope, card.type); } - ret = (ref = num.length, __indexOf.call(card.length, ref) >= 0) && (card.luhn === false || _luhnCheck(num)); + var length = 16; + switch (card.type) { + case 'amex': + length = 15; + break; + } + + ret = (ref = num.length, __indexOf.call(card.length, ref) >= 0) && num.length == length && (card.luhn === false || _luhnCheck(num)); return ret; } diff --git a/src/validate.js b/src/validate.js index ecf412c..2b4242b 100644 --- a/src/validate.js +++ b/src/validate.js @@ -98,7 +98,14 @@ angular.module('angularPayments') typeModel.assign(scope, card.type); } - ret = (ref = num.length, __indexOf.call(card.length, ref) >= 0) && (card.luhn === false || _luhnCheck(num)); + var length = 16; + switch (card.type) { + case 'amex': + length = 15; + break; + } + + ret = (ref = num.length, __indexOf.call(card.length, ref) >= 0) && num.length == length && (card.luhn === false || _luhnCheck(num)); return ret; }