【发布时间】:2010-11-30 14:23:13
【问题描述】:
使用正则表达式验证信用卡的正确方法是什么?如果使用哪一个,网上有很多。如果不是如何验证?
【问题讨论】:
标签: c# credit-card verification
使用正则表达式验证信用卡的正确方法是什么?如果使用哪一个,网上有很多。如果不是如何验证?
【问题讨论】:
标签: c# credit-card verification
使用正则表达式查看此链接Finding or Verifying Credit Card Numbers
再见。
【讨论】:
^6(?:0110[0-9]|011[2-4][0-9]|01174|0117[7-9]|0118[6-9]|0119[0-9]|4[4-9][0-9]{3}|5[0-9]{4})[0-9]{10}$
How can I use credit card numbers containing spaces? 涵盖了您应该需要的一切。
【讨论】:
我认为您正在寻找Luhn Algorithm。这是一个简单的校验和公式,用于验证各种标识号。
【讨论】:
这取决于您希望预验证的准确度。要验证所有可能的内容,您需要计算卡片的最后一位数字并与输入的内容进行比较,这是 RegEx 无法做到的。
有关算法和其他详细信息,请参阅 this link,它还提供了您可以验证的常用数字前缀列表。
【讨论】:
-- 编辑:
事实上,我会稍微不同意自己并同意 cletus。在发送之前尽可能多地进行验证(无需详细了解特定类型的信用卡 [恕我直言])。不言而喻(希望如此),这个验证应该在 JavaScript 中完成,以使其更快,然后在服务器上进行仔细检查(以及 JavaScript 残疾人士)。
-- 之前的回复:
别打扰;只需在您实际尝试付款时让提供商验证它。没有正当理由尝试自己验证。不过,如果您真的喜欢,可以使用this。
【讨论】: