有以下三種方法:
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;
}