0

大多数信用卡正则表达式将万事达卡列为以 5 开头,然后将 1-5 作为第二个数字,尽管这个来自 sears,前四个数字是 5049。我真的不想在不知道是否使用任何其他非约定的情况下更改正则表达式。有谁知道更改它是否非常安全,或者是否还需要进行其他更改?

提前致谢!

4

1 回答 1

4

你的正则表达式有问题:-) [编辑:如果你想支持西尔斯卡,这是你问题的前提]

维基百科上有一个准确的发行人编号列表:

http://en.wikipedia.org/wiki/List_of_Issuer_Identification_Numbers

它包括西尔斯的 5049。

我建议为每个列出的发行人编号创建一个或多个单元测试,并使用这些单元测试验证您的 RegEx。

更新

有很多被广泛接受的信用卡以“50”开头,所以如果你的 RegEx 断言第二个数字在 1-5 范围内,它仍然是错误的。

示例(来自 Wiki 链接):

500235 National Bank of Canada
500766 Bank of Montreal

如果您出售的商品允许出售给公共福利接受者(例如福利接受者),则还包括 EBT 卡,例如:

507683 Missouri EBT Card
于 2012-11-12T20:11:20.997 回答