NSStringvalidation

我需要validation一些用户在某些UITextField中input的NSString。

有两种我需要的validation。

1,判断一个NSString对象是否是合法的十进制数。

例如,@“100”,@“10.1”,@“0.11”都是合法的,但是@“100.11.1”不是。

第二,判断一个NSString对象是不是一个空格string。

例如,@“abc”,@“ab —- c”都是合法的,但@“—–”,@“”不是。

这里“ – ”是指空格“”。

我怎样才能validation这两种NSString?

非常感谢!

对于第一部分尝试这一点

NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; [formatter setAllowsFloats:YES]; [formatter setDecimalSeparator:@"."]; NSNumber *number = [formatter numberFromString: inputString]; if(number == nil) { //invalid input string } 

对于第二部分尝试这一点:

 NSString *str = [inputString stringByReplacingOccurrencesOfString:@" " withString:@""]; if([str length] == 0) { //invalid input string } 

对于第一次validation,您可以计算小数点。 零是有效的。 超过一个是无效的。 而且总是有效的(假设“.123”是有效的)。

对于第二次validation,您可以将空string@""与原始string进行比较,并删除所有空格。 如果他们相同,那么你的原始string是无效的。

searchSO。 例如NSString中字符的出现次数可能会有所帮助。