Is it better to ask the user what type of credit card is being entered or to attempt to auto-detect card type using regular expressions?
Some online merchants ask for the credit card type explicitly (Visa, Mastercard, Amex, etc) in a drop-down menu. While others, including Amazon and GitHub, never ask explicitly and instead rely on the properties of the card to determine the card number.
One problem with relying on card type auto-detection is credit card regular expression patterns seem to need updating over time. So these regular expression patterns may need constant updating to remain accurate and prevent holes in the patterns.
Which is better, asking the user for card type explicitly or attempting to auto-detect card type? Are there other considerations?