判断银行卡号格式是否正确

/**
 * Created by Administrator on 2016/9/18.
 * 验证银行卡格式是否正确
 */
public class CheckIdCard {
    /**
     * 校验银行卡卡号
     *
     * @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‘);
    }
}
时间: 2024-07-30 10:59:31

判断银行卡号格式是否正确的相关文章

判断 邮箱格式是否正确

练习:判断邮箱格式是否正确1.有且只能有一个@2.不能以@开头[email protected]之后至少有一个.[email protected]和.不能靠在一起5.不能以.结尾 1 Console.Write("请输入邮箱地址:"); 2 string m = Console.ReadLine(); 3 if (m.IndexOf("@") == m.LastIndexOf("@")) 4 { 5 if (m.IndexOf("@&q

判断邮箱 格式是否正确

/练习:判断邮箱格式是否正确 //1.有且只能有一个@ contains @ indexof @=lastindexof //2.不能以@开头 indexof != 0 //[email protected]之后至少有一个. //[email protected]和.不能靠在一起 //5.不能以.结尾 Console.Write("请输入您的邮箱:"); string s = Console.ReadLine(); if(s.Contains("@")==true)

js判断时间格式是否正确代码

js判断时间格式是否正确代码: 如果要求比较严格的话,时间格式也是需要进行判断的,下面就是一段这样的代码实例,希望能够给需要的朋友带来一定的帮助. 代码实例如下: function isDateString(strDate) { var strSeparator = "-"; var strDateArray; var intYear; var intMonth; var intDay; var boolLeapYear; var ErrorMsg = ""; st

iOS之判断手机号码格式是否正确

//判断手机号码格式是否正确 + (BOOL)valiMobile:(NSString *)mobile{     mobile = [mobile stringByReplacingOccurrencesOfString:@" " withString:@""];     if (mobile.length != 11)     {         return NO;     }else{         /**          * 移动号段正则表达式    

3月12日 判断邮箱格式是否正确

//练习:判断邮箱格式是否正确 //1.有且只能有一个@ //2.不能以@开头 //[email protected]之后至少有一个. //[email protected]和.不能靠在一起 //5.不能以.结尾 Console.Write("请输入您的邮箱账号"); string mail = Console.ReadLine(); bool a = mail.Contains("@"); if (a == true) { int b = mail.IndexOf

php 表单校验函数库(判断email格式是否正确、http地址是否合法有效、手机号码是否合法)

/** * 表单校验函数库 */ /** * 判断email格式是否正确 * @param $email */ function is_email($email) { return strlen($email) > 6 && preg_match("/^[\w\-\.][email protected][\w\-\.]+(\.\w+)+$/", $email); } //判断http 地址是否合法 function check_url($url) { return

Java编程练习之判断Java文件名是否正确,判断邮箱格式是否正确和统计指定字符串中某字符现的次数

一判断Java文件名是否正确,判断邮箱格式是否正确 功能:判断Java文件名是否正确,判断邮箱格式是否正确.其中:合法的文件名应该以.java结尾:合法的邮箱名 中至少要包含 "@" , 并要求 "@" 在 "." 之前. 练习代码: public class Test { public static void main(String[] args) { //Java文件名 String fileName = "HelloWorld.j

判断日期格式是否正确

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

编程实例--判断年月日格式是否正确

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ