天天看點

判斷字元串是不是純數字

有以下三種方法:

1、利用NSCharacterSet的stringByTrimmingCharactersInSet方法。

stringByTrimmingCharactersInSet函數可以過濾字元串中的指定特殊符号,如下我們指定輸入的字元串過濾掉十進制數字,隻要判斷剩下的字元串是否為空就行,為空則都是數字,反之不然。

- (BOOL)isNum:(NSString *)checkedNumString {

    checkedNumString = [checkedNumString stringByTrimmingCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]];

    if(checkedNumString.length > 0) {

        return NO;

    }

    return YES;

}

2、用NSScanner類來判斷

NSScanner是一個類,用于在字元串中掃描指定的字元。

- (BOOL)isPureInt:(NSString*)string{

    NSScanner* scan = [NSScanner scannerWithString:string];

    int val;

    return[scan scanInt:&val] && [scan isAtEnd];

}

3、正則

- (BOOL) deptNumInputShouldNumber:(NSString *)str

{

   if (str.length == 0) {

        return NO;

    }

    NSString *regex = @"[0-9]*";

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];

    if ([pred evaluateWithObject:str]) {

        return YES;

    }

    return NO;

}