银行卡号验证

代码验证银行卡号

/*** 判断是否是银行卡号     
* @author WJ     
* @param cardNo    
 * @return     
*/   
 public static boolean checkBankCard(String cardNo) {          
  char bit = getBankCardCheckCode(cardNo.substring(0, cardNo.length() - 1));         
   if (bit == 'N') {              
        return false;       
   }          
        return cardNo.charAt(cardNo.length() - 1) == bit;       
 }         
 private 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');     
 }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容