验是否为银行卡,用于验证现行 16 位银联卡现行卡号开头 6 位是 622126~622925 之间的,7 到 15位是银行自定义的,可能是发卡分行,发卡网点,发卡序号,第 16 位是校验码。
package test;
public class BankCardTest {
public static void main(String[] args) {
String card = "6227007200120897790";
System.out.println(" card: " + card);
System.out.println("check code: " + getBankCardCheckCode(card));
System.out.println("是否为银行卡:"+checkBankCard(card));
}
/**
* 校验银行卡卡号
* @param cardId
* @return
*/
public static boolean checkBankCard(String cardId) {
char bit = getBankCardCheckCode(cardId.substring(0, cardId.length() - 1));
if(bit == 'N'){
return false;
}
return cardId.charAt(cardId.length() - 1) == bit;
}
/**
* 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位
* @param nonCheckCodeCardId
* @return
*/
public static char getBankCardCheckCode(String nonCheckCodeCardId){
if(nonCheckCodeCardId == null || nonCheckCodeCardId.trim().length() == 0
|| !nonCheckCodeCardId.matches("\\d+")) {
//如果传的不是数据返回N
return 'N';
}
char[] chs = nonCheckCodeCardId.trim().toCharArray();
int luhmSum = 0;
for(int i = chs.length - 1, j = 0; i >= 0; i--, j++) {
int k = chs[i] - '0';
if(j % 2 == 0) {
k *= 2;
k = k / 10 + k % 10;
}
luhmSum += k;
}
return (luhmSum % 10 == 0) ? '0' : (char)((10 - luhmSum % 10) + '0');
}
}
摘自:http://outofmemory.cn/code-snippet/920/yanzheng-user-out-shifoushi-zhengque-yinxingqia-hao
相关推荐
在IT领域,特别是前端开发中,使用JavaScript进行数据...总之,通过上述代码,我们可以在JavaScript中实现一个有效的银行卡号验证器,确保在用户输入银行卡号时能够自动检测并纠正错误,提升用户体验和系统的安全性。
另外,在用户输入银行卡号的过程中,为了提高用户体验,有时需要对输入的格式进行处理,例如在每隔四位数字后添加一个"-"来使卡号显示得更加清晰易读。这可以通过设置textField的代理方法来实现,代码示例如下: ``...
在IT行业中,"输入银行卡号判断银行"是一个常见的需求,主要应用于在线支付系统、金融应用程序或者银行服务软件中。这个功能的核心是通过银行卡号(通常称为IBAN或BIC)来识别出对应的银行机构,以便进行正确的资金...
其次,自动格式化输入的银行卡号是一种常见的优化措施,目的是使用户在输入长串数字时能更清晰地看到已输入的内容。BankCardUtils可能采用了每4位数字添加一个空格的策略,如“1234 5678 9012 3456”,使得用户在...
在JavaScript(简称js)编程中,验证身份证号和银行卡号是非常常见的需求,特别是在网页表单提交或者用户注册等场景。身份证号码验证确保了输入的有效性,防止非法或错误的输入,而银行卡号验证则可以保护用户的金融...
在金融领域,银行卡号是用于识别和处理银行交易的重要标识符。为了确保用户输入的银行卡号有效且安全,通常会采用一系列验证机制,其中一种广泛使用的校验方法就是Luhn算法,也称为模10算法或LUHN校验。本节我们将...
在Java编程语言中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。...这些技巧在开发过程中非常实用,能够帮助我们确保用户输入的数据格式正确,从而提高程序的稳定性和用户体验。
在IT行业中,处理和识别银行卡号是金融系统中不可或缺的一部分。这个任务涉及到银行卡号的解析、验证以及与银行系统的交互,以便获取相应的银行名称和标识代码。以下是对这个主题的详细探讨: 首先,银行卡号(Bank...
本项目中,我们通过技术手段优化了这一过程,实现了输入银行卡号后自动识别银行卡信息的功能,同时允许用户方便地左滑解绑已绑定的银行卡。下面将详细介绍这个功能的实现方式和涉及的技术知识点。 首先,自动识别...
5. **模10校验**:如果加总结果能被10整除,那么原始的银行卡号是有效的;反之,则无效。 现在,我们有一个名为`VerifyCardNo`的工具或程序,它可能是用于实现这个校验过程的代码。这个工具可能接收一个银行卡号...
这款“js银行卡号格式输入框”代码实现了一个功能,即在用户输入银行卡号时,自动添加间隔(通常是空格)以增强可读性。这种格式化的输入框不仅提高了用户体验,也减少了用户在输入长数字串时可能出现的错误。 首先...
最后一位是校验位,通过Luhn算法或其他算法计算得出,用于验证银行卡号的正确性。 在编写`CardNum`类时,我们可能会包含以下几个关键知识点: 1. **数据验证**:输入的银行卡号需要进行有效性检查,确保其符合基本...
6. **自动完成(Auto Completion)**:在用户输入银行卡号时,可以考虑添加自动完成功能,根据已输入的部分自动填充剩余的卡号,提高输入效率。这通常需要配合后台服务,查询并验证银行卡号的前几位。 7. **安全与...
2. 调用验证方法:在用户输入银行卡号后,调用库提供的验证函数,如`BankCardValidation.Validate(cardNumber)`,传入银行卡号。 3. 处理结果:函数会返回一个验证结果,包括是否验证成功以及可能返回的银行信息。...
在实际开发中,"银行卡号识别"这个应用程序可能包含了前端界面设计,允许用户上传图片或直接输入卡号;后端服务器负责处理识别任务,可能采用分布式计算以提升处理速度;以及数据库管理和API接口设计,使得其他系统...
在处理金融相关的应用程序时,如银行APP或支付平台,用户在输入银行卡号时,通常会看到每4位数字后有一个空格,这是为了便于用户核对和记忆长串的数字。这个功能可以通过监听EditText的输入事件来实现。接下来,我们...
这个验证过程主要确保用户输入的银行卡号是正确的,以防止错误的数据处理和潜在的安全风险。本篇文章将详细探讨一种常用的验证方法——Luhm算法,以及如何使用纯JavaScript实现这一功能。 Luhm算法,也称为Luhn mod...
银行卡号是由银行分配给持卡人的唯一标识符,通常由一串数字组成,用于识别持卡人和其账户。不同的银行有不同的银行卡号结构,但通常包含发卡行识别码(Bank Identification Number, BIN)和账户号码。 接下来,...
在iOS开发中,有时我们需要根据用户输入的银行卡号来获取相关的银行信息,如发行行、卡名和卡种。这通常涉及到银行卡号的解析和验证,以及与已知的银行卡数据库进行匹配。以下是对这个话题的详细阐述: 1. **银行卡...