我有一个UITextField
,我只想要一个大于0的数字(我不需要非数字字符或值0)
这是我检查是否为空的方法:
if(seizure.text.length==0)
这是我检查是否等于0的方法:
else if(seizure.text doubleValue]==0)
如何检查非数字字符?
最佳答案
NSScanner
在这里会做得很好。与-[NSString doubleValue]
不同,它的scanDouble:
可以解析然后告诉您是否消耗了整个字符串,因此您将知道存在非数字字符。
演示一些测试用例。有关预期结果的描述,请参见注释。
NSArray * texts = @[// First four unacceptable because non-numeric
@"", @"Hello, world!", @"1.0 excelsior", @"Jiminy 1.0 Crickets",
// These three unacceptable because 0 or less
@"0.0" @"0", @"-2048",
// Last three are good
@"3.14159", @"1", @"10000000000.0"];
for( NSString * text in texts ){
NSScanner * scanner = [NSScanner scannerWithString:text];
double val;
[scanner scanDouble:&val];
// Scanned the whole string and ended up with a positive value
if( [scanner isAtEnd] && val > 0 ){
NSLog(@"'%@'? I accept.", text);
}
else {
NSLog(@"'%@' is no good.", text);
}
}
关于ios - 检查UITextField是否具有大于0的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460638/