西尔斯信用卡以50开头 - 失败的正则表达式

时间:2012-11-12 20:07:37

标签: regex credit-card

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

提前致谢!

1 个答案:

答案 0 :(得分:4)

您的RegEx有问题:-) [编辑:如果您想支持Sears卡,这是您提问的前提]

维基百科上有一份准确的发行人编号清单:

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

它包括西尔斯的5049。

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

<强>更新

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

示例(来自Wiki链接):

500235 National Bank of Canada
500766 Bank of Montreal

如果您正在销售允许出售给公益人士(例如福利受助人)的东西,也可以出售EBT卡,例如:

507683 Missouri EBT Card