IOS判断是否有效银行卡号

IOS判断是否有效银行卡号

by  伍雪颖

+ (BOOL) isValidCreditNumber:(NSString*)value {
    BOOL result = NO;
    NSInteger length = [value length];
    if (length >= 13) {
        result = [WTCreditCard isValidNumber:value];
        if (result)
        {
            NSInteger twoDigitBeginValue = [[value substringWithRange:NSMakeRange(0, 2)] integerValue];
            //VISA
            if([WTCreditCard isStartWith:value Str:@"4"]) {
                if (13 == length||16 == length) {
                    result = TRUE;
                }else {
                    result = NO;
                }
            }
            //MasterCard
            else if(twoDigitBeginValue >= 51 && twoDigitBeginValue <= 55 && length == 16) {
                result = TRUE;
            }
            //American Express
            else if(([WTCreditCard isStartWith:value Str:@"34"]||[WTCreditCard isStartWith:value Str:@"37"]) && length == 15){
                result = TRUE;
            }
            //Discover
            else if([WTCreditCard isStartWith:value Str:@"6011"] && length == 16) {
                result = TRUE;
            }else {
                result = FALSE;
            }
        }
        if (result)
        {
            NSInteger digitValue;
            NSInteger checkSum = 0;
            NSInteger index = 0;
            NSInteger leftIndex;
            //even length, odd index
            if (0 == length%2) {
                index = 0;
                leftIndex = 1;
            }
            //odd length, even index
            else {
                index = 1;
                leftIndex = 0;
            }
            while (index < length) {
                digitValue = [[value substringWithRange:NSMakeRange(index, 1)] integerValue];
                digitValue = digitValue*2;
                if (digitValue >= 10)
                {
                    checkSum += digitValue/10 + digitValue%10;
                }
                else
                {
                    checkSum += digitValue;
                }
                digitValue = [[value substringWithRange:NSMakeRange(leftIndex, 1)] integerValue];
                checkSum += digitValue;
                index += 2;
                leftIndex += 2;
            }
            result = (0 == checkSum%10) ? TRUE:FALSE;
        }
    }else {
        result = NO;
    }
    return result;
}
时间: 2024-10-08 15:53:35

IOS判断是否有效银行卡号的相关文章

iOS 判断是push还是present

iOS 判断是push还是present下面这种方法判断成功了  if (self.presentingViewController)   {      [weakSelf dismissViewControllerAnimated:YES completion:nil];    }    else {       [weakSelf.navigationController popViewControllerAnimated:YES];      }

iOS判断为空或者只为空格

本文转载至 :http://www.cnblogs.com/superhappy/archive/2012/11/08/2761403.html 经常有需求 要判断不能为空,后台老是鄙视不做非空判断的前端 ,木办法 只能写一个. 第一种想法:我不就是判断 是不是nil就可以了么.结果发现太天真,用户可以输入空格. 对于这种蛋疼的用户,只能采取蛋疼的方法: -(Bool) isEmpty:(NSString *) str { if (!str) { return true; } else { //

iOS 判断字符串中含有某个字符串rangeOfString

//_roaldSearchText if([roadTitleLab.text rangeOfString:@"格力"].location !=NSNotFound) NSLog(@"yes"); else NSLog(@"no"); iOS 判断字符串中含有某个字符串rangeOfString,布布扣,bubuko.com

ios 判断字符串为空和只为空格解决办法

ios 判断字符串为空和只为空格解决办法- (BOOL)isBlankString:(NSString *)string{ if (string == nil) { return YES; } if (string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]) { return YES; } if ([[string stringByTrimmingCharactersInSet:[NSCharacterS

iOS 判断数组是否为空

有人说可以用([array count]==0 )来判断是否为空,都是坑,如果array为空的话,执行count就会直接报错,程序崩溃退出. 正确判断NSArray是否为空的方法:用 (!array) if(array != nil && ![array isKindOfClass:[NSNullclass]] && array.count !=0){ //执行array不为空时的操作 } 这样才是iOS判断数组是否为空的准确方式.

iOS判断判断设备类型信息

一.iOS判断判断设备机型 http://www.jianshu.com/p/591765b70ca5 1.导入 #import <sys/utsname.h> 2.代码 struct utsname systemInfo2; uname(&systemInfo2); NSString *platform = [NSString stringWithCString:systemInfo2.machine encoding:NSASCIIStringEncoding];

ios 判断邮箱是否正确

ios 判断邮箱是否正确     - (BOOL)isValidateEmail:(NSString *)Email { NSString *emailCheck = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailCh

iOS 判断View 是否是第一次显示

在实现某些需求的时候会有这样的情况,页面第一次加载显示的时候需要某些操作,而以后就不需要重复执行了, 一般这种处理都放在- (void)viewDidLoad或- (id)init因为一般这两个函数除了在第一次显示或初始化以后就不会走了. 如果反过来呢页面第一次加载显示的时候不需要某些操作,但是如果是非第一次就需要做些判断,这个时候就需要做一些处理. 我选择了用计数来控制通过-(void)viewDidAppear:(BOOL)animated来控制 做法就是全局一个int isfirst 在-

IOS判断文件类型

IOS判断文件类型 2013-11-06 13:14 929人阅读 评论(0) 收藏 举报 最近在做的东西有下载zip,只是服务器发送过来的是二进制,需要根据二进制来判断是什么类型的文件,从而进行保存操作.起初很不理解,到后来发现可以通过二进制的前2位的ascii码来进行判断.如下: // 255216 jpg;        // 7173 gif;        // 6677 bmp,        // 13780 png;        // 6787 swf        // 77