There are two factors to consider when deciding how to handle the problem of a work sample: sample size and population characteristics. Sample size is determined by a formula based on the power of the sample or its ability to represent the population with a predictable margin of error.
The resulting complexity makes card type detection code difficult to write, read, and maintain. As an example of this complexity, consider this JavaScript regular expression used to detect Discover card numbers starting with 6011, 622126-622925, 644-649, and 65:
Plastic money comes with a string of digits to identify the card, its owner and the issuing bank. Obviously, the numbers can't be any arbitrary string but are controlled by an international standard. This is the ISO/IEC 7812. This defines that the first six digits of your card are used to identify the issuing bank. These six digits are the Bank Identification Number (BIN) also known as the Issuer Identification Number (IIN).