Object-C 判断输入的字符是否是有效的数字很恼火,为什么呢,是这样:本来NSString 有个intValue(),floatValue()方法。但是这两个方法有个弊端:只要输入的字符不是有效的数字字符,执行这两个方法不报错,默认成运算结果都为0. 这就无法实现输入的字符串判读是否是全数字,网上也没找到这方面的例子,索性自己写了个方法来验证是否是数字的方法,经验证可以满足一般的功能,但是有个小缺点就是没有判断诸如:.012这样无效的数字。
-(BOOL)isAllNumberOfString:(NSString *)myString
{
BOOL flag =YES;
NSArray *allowChar = [NSArray arrayWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@".", nil];
for (int i = 0; i<myString.length; i++) {
NSRange range = NSMakeRange(i, 1);
NSString *aString =[myString substringWithRange:range];
BOOL isNum = NO;
for (int j=0; j<allowChar.count; j++) {
if([aString isEqualToString:[allowChar objectAtIndex:j]])
{
isNum = YES;
break;
}
}
if(!isNum)
{
flag = NO;
break;
}
}
return flag;
}
|