正则表达式识别商店信用卡号

Posted

技术标签:

【中文标题】正则表达式识别商店信用卡号【英文标题】:Regex to identify Store Credit Card numbers 【发布时间】:2019-06-24 12:09:51 【问题描述】:

有非常详细的正则表达式来识别 Visa、MasterCard、Discover 和其他流行的信用卡号。

但是,还有大量其他信用卡;通常称为商店信用卡(这些不是 Visa 或 Amex 支持的卡)。这些卡的例子有亚马逊、GAP 品牌、威廉姆斯索诺玛、梅西百货等。其中大部分是同步银行信用卡。

是否有正则表达式来识别这些不同品牌的信用卡号?

【问题讨论】:

我不会因为重复而关闭,但网上有很多关于各种信用卡提供商的正则表达式的参考资料,such as this one。在向 Stack Overflow 发布问题之前,请先进行一些研究。 我担心我会看到这样的 cmets,但我的问题既不是重复的,也不是我在 google 上找到的任何信息。是的,我看过你链接到的文章。 好吧,够公平的 +1 我可以看到你在询问其他卡。也许你可以写信给亚马逊询问他们正在使用的模式。 想过这样做。但这只是亚马逊。有很多品牌与 Synchrony 合作。我会发布一个指向该列表的链接,但我现在正在打电话。 如果你给我这些模式,我们可以为你做一些正则表达式! 【参考方案1】:

使用正则表达式来识别网络是可笑的。最多只需要一个前缀匹配。

卡号有 16 位数字。前几个标识网络和银行。

有些人会说 Visa 以 4 开头,而 MasterCard 以 5 开头,但这充其量只是一个大致的近似值。你可以看看你的卡,大部分时间应该是对的。

如果可以获得已知前缀的注册表,那么很容易弄清楚卡片是什么,但据我所知,没有公共注册表。我非常怀疑有关各方是否愿意发布该信息。

【讨论】:

【参考方案2】:

国际卡号的第一个eight digits(直到最近还是六位数字)称为发行人识别号 (IIN),维护该索引的注册表是 American Bankers Association

IIN 列表每月更新一次,涵盖数万行。不幸的是,固定的正则表达式在任何时间段内都不会准确。

【讨论】:

以上是关于正则表达式识别商店信用卡号的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式匹配信用卡号,除非它们出现在 UUID 中

使用正则表达式前瞻将信用卡号拆分为 4 块?

正则表达式在文件中查找信用卡号不起作用

TextBox:为信用卡号插入空格?

是否有任何有效的信用卡号是其他有效信用卡号的初始子串?

使用正则表达式验证信用卡?