Surely this is a typo?
if(isValidNum || isValidExp || isValidCVC)
/* Success /
else
/ Validation failed */
Wouldn’t you want all the be valid, not just one of them?
if(isValidNum && isValidExp && isValidCVC)
/* Success /
else
/ Validation failed */
Otherwise, great article! Was a good read.