【问题标题】:Validating credit card format using regular expressions?使用正则表达式验证信用卡格式?
【发布时间】:2016-07-31 23:23:42
【问题描述】:

我有一项任务要求我使用正则表达式验证某些信用卡格式。例如,万事达卡有 16 位数字,以 5 开头,后跟 15 位数字,因此正则表达式如下:

\b5[0-9]{15}\b

以下信用卡格式的正则表达式是什么?

大来卡:信用卡有 14 位数字,以 301、302、303、304、305、36 或 38 开头。

JCB:信用卡有 15 位以 2131 或 1800 开头,或者有 16 位并以 35 开头

谢谢!

【问题讨论】:

    标签: regex credit-card


    【解决方案1】:

    这应该涵盖所有的基础(由 RegEx Buddy 提供):

    ^(?:
    (?<visa>4\d{3}[ -]*\d{4}[ -]*\d{4}[ -]*\d(?:\d{3})?) |
    (?<mastercard>5[1-5]\d{2}[ -]*\d{4}[ -]*\d{4}[ -]*\d{4}) |
    (?<discover>6(?:011|5[0-9]{2})[ -]*\d{4}[ -]*\d{4}[ -]*\d{4}) |
    (?<amex>3[47]\d{2}[ -]*\d{6}[ -]*\d{5}) |
    (?<diners>3(?:0[0-5]|[68][0-9])\d[ -]*\d{6}[ -]*\d{4}) |
    (?<jcb>(?:2131|1800)[ -]*\d{6}[ -]*\d{5}|35\d{2}[ -]*\d{4}[ -]*\d{4}[ -]*\d{4})
    )$
    

    【讨论】:

      猜你喜欢
      • 2015-09-14
      • 2018-08-15
      • 2010-11-30
      • 2019-02-26
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      相关资源
      最近更新 更多