`
liuzhiqiang19890403
  • 浏览: 61342 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

验证用户输入是否是正确的银行卡号

 
阅读更多

验是否为银行卡,用于验证现行 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

分享到:
评论

相关推荐

    js验证银行卡号

    在IT领域,特别是前端开发中,使用JavaScript进行数据...总之,通过上述代码,我们可以在JavaScript中实现一个有效的银行卡号验证器,确保在用户输入银行卡号时能够自动检测并纠正错误,提升用户体验和系统的安全性。

    判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)

    另外,在用户输入银行卡号的过程中,为了提高用户体验,有时需要对输入的格式进行处理,例如在每隔四位数字后添加一个"-"来使卡号显示得更加清晰易读。这可以通过设置textField的代理方法来实现,代码示例如下: ``...

    输入银行卡号判断银行

    在IT行业中,"输入银行卡号判断银行"是一个常见的需求,主要应用于在线支付系统、金融应用程序或者银行服务软件中。这个功能的核心是通过银行卡号(通常称为IBAN或BIC)来识别出对应的银行机构,以便进行正确的资金...

    Android-BankCardUtils自动格式化银行卡号手机号身份证号输入的工具类

    其次,自动格式化输入的银行卡号是一种常见的优化措施,目的是使用户在输入长串数字时能更清晰地看到已输入的内容。BankCardUtils可能采用了每4位数字添加一个空格的策略,如“1234 5678 9012 3456”,使得用户在...

    js校验身份证号和银行卡号

    在JavaScript(简称js)编程中,验证身份证号和银行卡号是非常常见的需求,特别是在网页表单提交或者用户注册等场景。身份证号码验证确保了输入的有效性,防止非法或错误的输入,而银行卡号验证则可以保护用户的金融...

    验证银行卡号输入的正确性

    在金融领域,银行卡号是用于识别和处理银行交易的重要标识符。为了确保用户输入的银行卡号有效且安全,通常会采用一系列验证机制,其中一种广泛使用的校验方法就是Luhn算法,也称为模10算法或LUHN校验。本节我们将...

    java 银行卡 验证 正则表达式使用

    在Java编程语言中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。...这些技巧在开发过程中非常实用,能够帮助我们确保用户输入的数据格式正确,从而提高程序的稳定性和用户体验。

    输入银行卡号返回对应银行名称和编码

    在IT行业中,处理和识别银行卡号是金融系统中不可或缺的一部分。这个任务涉及到银行卡号的解析、验证以及与银行系统的交互,以便获取相应的银行名称和标识代码。以下是对这个主题的详细探讨: 首先,银行卡号(Bank...

    小程序自动识别银行卡信息,左滑解绑银行卡

    本项目中,我们通过技术手段优化了这一过程,实现了输入银行卡号后自动识别银行卡信息的功能,同时允许用户方便地左滑解绑已绑定的银行卡。下面将详细介绍这个功能的实现方式和涉及的技术知识点。 首先,自动识别...

    银行卡号校验

    5. **模10校验**:如果加总结果能被10整除,那么原始的银行卡号是有效的;反之,则无效。 现在,我们有一个名为`VerifyCardNo`的工具或程序,它可能是用于实现这个校验过程的代码。这个工具可能接收一个银行卡号...

    js银行卡号格式输入框.zip

    这款“js银行卡号格式输入框”代码实现了一个功能,即在用户输入银行卡号时,自动添加间隔(通常是空格)以增强可读性。这种格式化的输入框不仅提高了用户体验,也减少了用户在输入长数字串时可能出现的错误。 首先...

    银行卡号输入

    最后一位是校验位,通过Luhn算法或其他算法计算得出,用于验证银行卡号的正确性。 在编写`CardNum`类时,我们可能会包含以下几个关键知识点: 1. **数据验证**:输入的银行卡号需要进行有效性检查,确保其符合基本...

    iOS手机银行卡号输入格式化

    6. **自动完成(Auto Completion)**:在用户输入银行卡号时,可以考虑添加自动完成功能,根据已输入的部分自动填充剩余的卡号,提高输入效率。这通常需要配合后台服务,查询并验证银行卡号的前几位。 7. **安全与...

    dotnet-BingBankCardValidtion是基于支付宝接口实现银行卡号码验证功能

    2. 调用验证方法:在用户输入银行卡号后,调用库提供的验证函数,如`BankCardValidation.Validate(cardNumber)`,传入银行卡号。 3. 处理结果:函数会返回一个验证结果,包括是否验证成功以及可能返回的银行信息。...

    银行卡号识别

    在实际开发中,"银行卡号识别"这个应用程序可能包含了前端界面设计,允许用户上传图片或直接输入卡号;后端服务器负责处理识别任务,可能采用分布式计算以提升处理速度;以及数据库管理和API接口设计,使得其他系统...

    输入银行卡卡号时,每4位添加空格

    在处理金融相关的应用程序时,如银行APP或支付平台,用户在输入银行卡号时,通常会看到每4位数字后有一个空格,这是为了便于用户核对和记忆长串的数字。这个功能可以通过监听EditText的输入事件来实现。接下来,我们...

    【原创】纯javascript实现银行卡号的Luhm验证或校验算法

    这个验证过程主要确保用户输入的银行卡号是正确的,以防止错误的数据处理和潜在的安全风险。本篇文章将详细探讨一种常用的验证方法——Luhm算法,以及如何使用纯JavaScript实现这一功能。 Luhm算法,也称为Luhn mod...

    根据银行卡号查询银行名称、开户行、银行logo、ICO等、已封装JSON

    银行卡号是由银行分配给持卡人的唯一标识符,通常由一串数字组成,用于识别持卡人和其账户。不同的银行有不同的银行卡号结构,但通常包含发卡行识别码(Bank Identification Number, BIN)和账户号码。 接下来,...

    ios-根据银行卡号识别银行卡的信息(发行行,卡名,卡种).zip

    在iOS开发中,有时我们需要根据用户输入的银行卡号来获取相关的银行信息,如发行行、卡名和卡种。这通常涉及到银行卡号的解析和验证,以及与已知的银行卡数据库进行匹配。以下是对这个话题的详细阐述: 1. **银行卡...

Global site tag (gtag.js) - Google Analytics