使用正则表达式验证信用卡格式?
Posted
技术标签:
【中文标题】使用正则表达式验证信用卡格式?【英文标题】: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 开头
谢谢!
【问题讨论】:
【参考方案1】:这应该涵盖所有的基础(由 RegEx Buddy 提供):
^(?:
(?<visa>4\d3[ -]*\d4[ -]*\d4[ -]*\d(?:\d3)?) |
(?<mastercard>5[1-5]\d2[ -]*\d4[ -]*\d4[ -]*\d4) |
(?<discover>6(?:011|5[0-9]2)[ -]*\d4[ -]*\d4[ -]*\d4) |
(?<amex>3[47]\d2[ -]*\d6[ -]*\d5) |
(?<diners>3(?:0[0-5]|[68][0-9])\d[ -]*\d6[ -]*\d4) |
(?<jcb>(?:2131|1800)[ -]*\d6[ -]*\d5|35\d2[ -]*\d4[ -]*\d4[ -]*\d4)
)$
【讨论】:
以上是关于使用正则表达式验证信用卡格式?的主要内容,如果未能解决你的问题,请参考以下文章