我正在尝试识别有效的信用卡号码,以便我可以转换到下一个字段。鉴于信用卡号码有不同的长度,我的问题是我是否可以指望如果我确认有效的信用卡号码(通过正则表达式和Luhn算法使用),我将不排除其他有效的信用卡号码(就正则表达式/ Luhn和发行而言)更长。
答案 0 :(得分:3)
考虑Visa有效PAN长度为16到19位数字,因为最后一位数字是前一位数字的校验位,总会有另一个带有额外数字的PAN将通过LUHN测试。
4929847243031832
49298472430318328
492984724303183283
答案 1 :(得分:0)
我不确定使用正则表达式是否是检查信用卡有效性的有效方法。几乎可以肯定地说card.length = 16,因为任何数字1234567 ... 16都有效我认为如果您正在实施支付系统以使用有效的支付处理库,那么您可以通过以下方式验证信用卡号码他们的图书馆
答案 2 :(得分:0)
有效的信用卡号码(PAN - 主帐号)有11到24位数字,不同的系统有自己的长度,最后加上LRC(纵向冗余校验)。 如果VISA或万事达卡有18个符号,则123456789123456789有效。 https://en.wikipedia.org/wiki/Longitudinal_redundancy_check 它在标准ISO / IEC_7813 https://en.wikipedia.org/wiki/ISO/IEC_7813
中定义答案 3 :(得分:0)
考虑一下法律问题:当用户认为他们输入了正确的号码时,他们应该真正告诉你。我只删除了空白,其他任何可能让你受到干扰的责任。我会建议你不要做什么。在用户试图处理该类型的可用性时,不会影响交易。