Get Credit Card Type

How to get C-card type, how to know the input card number is Visa or Master Card ?
here the code for CreditCard.cs

public class CreditCard
{
    private string AmericanExpressPattern => @"^3[47][0-9]{13}$";
    private string MasterCardPattern => @"^5[1-5][0-9]{14}$";
    private string VisaCardPattern => @"^4[0-9]{12}(?:[0-9]{3})?$";
    private string DinersClubCardPattern => @"^3(?:0[0-5]|[68][0-9])[0-9]{11}$";
    private string EnRouteCardPattern => @"^(2014|2149)";
    private string DiscoverCardPattern => @"^6(?:011|5[0-9]{2})[0-9]{12}$";
    private string JcbCardPattern => @"^(?:2131|1800|35\d{3})\d{11}$";


    private Dictionary CreditRegxs { get; set; }

    public CreditCard()
    {
        CreditRegxs = new Dictionary()
        {
            {"American Express",AmericanExpressPattern},
            {"Mastercard",MasterCardPattern},
            {"Visa",VisaCardPattern},
            {"Diners Club",DinersClubCardPattern},
            {"En Route",EnRouteCardPattern},
            {"Discover",DiscoverCardPattern},
            {"JCB ",JcbCardPattern},
        };
    }

    public string GetCreditCardType(string cardNumber)
    {
        string cardType = "Unknown";
        try
        {
            string cardNum = cardNumber.Replace(" ", "").Replace("-", "");
            foreach (string cardTypeName in CreditRegxs.Keys)
            {
                Regex regex = new Regex(CreditRegxs[cardTypeName]);
                if (regex.IsMatch(cardNum))
                {
                    cardType = cardTypeName;
                    break;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
        return cardType;
    }

}
public class CreditCard
{
    private string AmericanExpressPattern => @"^3[47][0-9]{13}$";
    private string MasterCardPattern => @"^5[1-5][0-9]{14}$";
    private string VisaCardPattern => @"^4[0-9]{12}(?:[0-9]{3})?$";
    private string DinersClubCardPattern => @"^3(?:0[0-5]|[68][0-9])[0-9]{11}$";
    private string EnRouteCardPattern => @"^(2014|2149)";
    private string DiscoverCardPattern => @"^6(?:011|5[0-9]{2})[0-9]{12}$";
    private string JcbCardPattern => @"^(?:2131|1800|35\d{3})\d{11}$";


    private Dictionary<string string=""> CreditRegxs { get; set; }

    public CreditCard()
    {
        CreditRegxs = new Dictionary<string string="">()
        {
            {"American Express",AmericanExpressPattern},
            {"Mastercard",MasterCardPattern},
            {"Visa",VisaCardPattern},
            {"Diners Club",DinersClubCardPattern},
            {"En Route",EnRouteCardPattern},
            {"Discover",DiscoverCardPattern},
            {"JCB ",JcbCardPattern},
        };
    }

    public string GetCreditCardType(string cardNumber)
    {
        string cardType = "Unknown";
        try
        {
            string cardNum = cardNumber.Replace(" ", "").Replace("-", "");
            foreach (string cardTypeName in CreditRegxs.Keys)
            {
                Regex regex = new Regex(CreditRegxs[cardTypeName]);
                if (regex.IsMatch(cardNum))
                {
                    cardType = cardTypeName;
                    break;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
        return cardType;
    }

}
</string></string>
  1. <code>
  2. public class CreditCard
  3. {
  4. private string AmericanExpressPattern => @"^3[47][0-9]{13}$";
  5. private string MasterCardPattern => @"^5[1-5][0-9]{14}$";
  6. private string VisaCardPattern => @"^4[0-9]{12}(?:[0-9]{3})?$";
  7. private string DinersClubCardPattern => @"^3(?:0[0-5]|[68][0-9])[0-9]{11}$";
  8. private string EnRouteCardPattern => @"^(2014|2149)";
  9. private string DiscoverCardPattern => @"^6(?:011|5[0-9]{2})[0-9]{12}$";
  10. private string JcbCardPattern => @"^(?:2131|1800|35\d{3})\d{11}$";
  11. private Dictionary<string string=""> CreditRegxs { get; set; }
  12. public CreditCard()
  13. {
  14. CreditRegxs = new Dictionary<string string="">()
  15. {
  16. {"American Express",AmericanExpressPattern},
  17. {"Mastercard",MasterCardPattern},
  18. {"Visa",VisaCardPattern},
  19. {"Diners Club",DinersClubCardPattern},
  20. {"En Route",EnRouteCardPattern},
  21. {"Discover",DiscoverCardPattern},
  22. {"JCB ",JcbCardPattern},
  23. };
  24. }
  25. public string GetCreditCardType(string cardNumber)
  26. {
  27. string cardType = "Unknown";
  28. try
  29. {
  30. string cardNum = cardNumber.Replace(" ", "").Replace("-", "");
  31. foreach (string cardTypeName in CreditRegxs.Keys)
  32. {
  33. Regex regex = new Regex(CreditRegxs[cardTypeName]);
  34. if (regex.IsMatch(cardNum))
  35. {
  36. cardType = cardTypeName;
  37. break;
  38. }
  39. }
  40. }
  41. catch (Exception ex)
  42. {
  43. Console.WriteLine(ex);
  44. }
  45. return cardType;
  46. }
  47. }
  48. </string></string></code>
<code>
public class CreditCard
{
    private string AmericanExpressPattern => @"^3[47][0-9]{13}$";
    private string MasterCardPattern => @"^5[1-5][0-9]{14}$";
    private string VisaCardPattern => @"^4[0-9]{12}(?:[0-9]{3})?$";
    private string DinersClubCardPattern => @"^3(?:0[0-5]|[68][0-9])[0-9]{11}$";
    private string EnRouteCardPattern => @"^(2014|2149)";
    private string DiscoverCardPattern => @"^6(?:011|5[0-9]{2})[0-9]{12}$";
    private string JcbCardPattern => @"^(?:2131|1800|35\d{3})\d{11}$";


    private Dictionary<string string=""> CreditRegxs { get; set; }

    public CreditCard()
    {
        CreditRegxs = new Dictionary<string string="">()
        {
            {"American Express",AmericanExpressPattern},
            {"Mastercard",MasterCardPattern},
            {"Visa",VisaCardPattern},
            {"Diners Club",DinersClubCardPattern},
            {"En Route",EnRouteCardPattern},
            {"Discover",DiscoverCardPattern},
            {"JCB ",JcbCardPattern},
        };
    }

    public string GetCreditCardType(string cardNumber)
    {
        string cardType = "Unknown";
        try
        {
            string cardNum = cardNumber.Replace(" ", "").Replace("-", "");
            foreach (string cardTypeName in CreditRegxs.Keys)
            {
                Regex regex = new Regex(CreditRegxs[cardTypeName]);
                if (regex.IsMatch(cardNum))
                {
                    cardType = cardTypeName;
                    break;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
        return cardType;
    }

}
</string></string></code>

Add Helper Class to use it


public static class CreditCardHelper
{
    public static string GetCreditCardType(this string cardNumber)
    {
        return  new CreditCard().GetCreditCardType(cardNumber);
    }
}
public static class CreditCardHelper
{
    public static string GetCreditCardType(this string cardNumber)
    {
        return  new CreditCard().GetCreditCardType(cardNumber);
    }
}
  1. <code>
  2. public static class CreditCardHelper
  3. {
  4. public static string GetCreditCardType(this string cardNumber)
  5. {
  6. return new CreditCard().GetCreditCardType(cardNumber);
  7. }
  8. }
  9. </code>
<code>

public static class CreditCardHelper
{
    public static string GetCreditCardType(this string cardNumber)
    {
        return  new CreditCard().GetCreditCardType(cardNumber);
    }
}
</code>

Example to use The class :

static void Main(string[] args)
{
     var card = "4111 1111 1111 1111";
     Console.WriteLine(card.GetCreditCardType());
}
static void Main(string[] args)
{
     var card = "4111 1111 1111 1111";
     Console.WriteLine(card.GetCreditCardType());
}
  1. <code>
  2. static void Main(string[] args)
  3. {
  4. var card = "4111 1111 1111 1111";
  5. Console.WriteLine(card.GetCreditCardType());
  6. }
  7. </code>
<code>
static void Main(string[] args)
{
     var card = "4111 1111 1111 1111";
     Console.WriteLine(card.GetCreditCardType());
}
</code>

  1. <code>
  2. </code>
<code>
</code>

  1. <code>
  2. </code>
<code>
</code>
To download full code from GitHub HereTo download full code from <a href="https://github.com/msm2020/Blog-2019/tree/master/Blog2019/CreditCardTypeConsoleApp">GitHub Here</a>
  1. <code>To download full code from <a href="https://github.com/msm2020/Blog-2019/tree/master/Blog2019/CreditCardTypeConsoleApp">GitHub Here</a></code>
<code>To download full code from <a href="https://github.com/msm2020/Blog-2019/tree/master/Blog2019/CreditCardTypeConsoleApp">GitHub Here</a></code>

Popular posts from this blog

Could not load file or assembly 'Microsoft.ReportViewer.Common, Version=xx.0.0.0, Culture=neutral, PublicKeyToken='xxx' or one of its dependencies.

C# Crop white space from around the image

The specified version string contains wildcards, which are not compatible with determinism.