← Blog

Validating Card Numbers by Brand with C#

January 18, 2016

A basic method using regex to validate a card number according to its brand.

private bool ValidateCard(string cardNumber, string brand)
{
    string number = cardNumber.Replace("-", "");
    switch (brand.ToUpper())
    {
        case "VISA":
            if (Regex.IsMatch(number, "^(4)"))
                return number.Length == 13 || number.Length == 16;
            break;
        case "MASTERCARD":
            if (Regex.IsMatch(number, "^(51|52|53|54|55)"))
                return number.Length == 16;
            break;
        case "AMEX":
            if (Regex.IsMatch(number, "^(34|37)"))
                return number.Length == 15;
            break;
        case "DINERS":
            if (Regex.IsMatch(number, "^(300|301|302|303|304|305|36|38)"))
                return number.Length == 14;
            break;
    }

    return false;
}
studiesdotnet