銀行卡號驗證

代碼驗證銀行卡號

/*** 判斷是否是銀行卡號     
* @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+")) {             
         // 如果傳的不是數(shù)據(jù)返回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');     
 }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容