当前位置: 首页 > 面试题库 >

如何使用包含空格的信用卡号?

张宣
2023-03-14
问题内容

当检测到未经训练的购物者输入信用卡/借记卡卡号时,某些高档网站会显示错误对话框,因为该密码印在其卡上带有空格。是否可以通过某种方式编写一个Java
Web应用程序来处理这些带有空格的数字,就好像它们是正确的一样?


问题答案:

我的观点是,任何拒绝带有空格的信用卡号的Web应用程序都无法正常工作。当您收到信用卡号时,这样做很容易:

String ccNumber = ccNumber.replaceAll("[\\s-]+", "");

删除空格和破折号(有些也使用)。然后验证结果。如果您强迫用户删除您可以轻松完成的空间,则只会惹恼他们。

至于 如何 验证,这取决于很多事情,例如您使用的是哪种Web框架以及选择的验证选项。例如,Struts 1可能会或可能不会使用Apache
Commons Validator,而Spring MVC将(可能)使用Spring验证,依此类推。所以我不能告诉你到底如何验证,但我可以告诉你
什么 来验证。

第一件事是带有空格的抄送号码 应该被拒绝。大多数人会发现:

4123 0987 8876 2939

比以下内容 容易阅读:

4123098788762939

如果用户错过或输入了错误的数字并需要查找其信用卡号验证失败的原因,这一点非常重要。这篇文章顶部的replaceAll()解决了这种情况。

第二件事是您以正确的方式显示信用卡号(即使出于安全原因,某些数字用X代替了)。我建议您通读《信用卡号剖析》。

该页面为您提供了数字位数和有效前缀的规则。健壮的Web应用程序将实现这些功能因此您可以在尝试使用信用卡号之前确定其是否无效
。向付款网关提交信用卡详细信息最多可能需要30秒钟(或更长的时间),因此在您确定可以接受付款之前,您不应该这样做。否则将提供非常糟糕的用户体验。如果失败1-2次,用户很有可能会放弃,而不是等待。

至于显示,取决于数字位数:

  • 16:4组,每组4个,中间用空格隔开;
  • 15:就像美国运通卡,即4-6-5,每组之间有一个空格;
  • 14:就像大来卡,即4-6-4,每组之间有一个空格;
  • 13:从没见过13,但脑海中浮现出4-5-4或4-4-5或5-4-4(或3-3-3-4)。

在作为标准验证例程的一部分 进行处理之前, 应根据页面中提到的校验和算法来验证信用卡号。该页面具有该例程的Java实现。

每个 接受信用卡付款的网站都应将上述所有操作作为 绝对最低限度, 否则您会因为沮丧的用户比例而放弃业务。

因此,简短的版本是两个简单的规则:

  1. 尽可能宽容用户的输入;和
  2. 在提交之前,请尽一切可能验证信用卡详细信息。


 类似资料:
  • 问题内容: 我使用telnet输入这样的命令行命令 所有这三个返回相同的错误。 问题答案: 如果只有telnet(而不是’redis-cli’),则需要使用Redis二进制安全统一协议在键名中使用空格,例如: 有关Redis二进制安全协议的更多信息:http : //redis.io/topics/protocol

  • 我在读一个excel文件。我希望得到空单元格的行和列号,如果有类似的: 这里我想要空白单元格的行和列索引,我试了很多东西但都不成功

  • 问题内容: 我正在尝试在目录下复制一堆文件,并且其中一些文件的名称中包含空格和单引号。当我尝试串起来并用,我得到以下错误: 关于更可靠地使用xargs的任何建议? 这是在具有BSD的Mac OS X 10.5.3 (Leopard)上。 问题答案: 您可以将所有这些组合成一个命令: 这将处理文件名和目录中带有空格的内容。您可以用来获取区分大小写的结果。 注意:传递给的标志阻止它处理以选项开头的文件

  • 现在假设用户enterd AAA-222 结果将是 ps.拆分的部分应该包括空格。

  • 本文向大家介绍PowerShell命令中包含空格如何运行?,包括了PowerShell命令中包含空格如何运行?的使用技巧和注意事项,需要的朋友参考一下 在PowerShell中,可以直接运行命令。包括.exe结尾的、.com结尾的可执行程序,包括.bat结尾的、.cmd结尾的批处理程序,还有.vbs结尾的、.ps1结尾的脚本程序。均可以使用如下方式运行程序: <程序文件名>.<后缀> [参数列表]

  • 为了在bash和fish中创建更简单的别名,我编写了两个初学者函数。我尝试了两种捕获文件参数的方法,如上图所示。他们两个都不工作。相反,我收到了以下消息。 说我正在打开文件。在nteractstarted.ipynb。 这将显示在我的控制台中,并打开带有空笔记本的默认Interact实例。记事本和其他文件也是如此。 在这里插入一条抱怨,与Linux shell相比,让此功能正常工作是多么令人困惑。