如何检查用户是否在我的UITextField中输入了号码。基本上,它是我接受的0-100之间的一个分数,它可以是一个小数。我听说我可以尝试将它转换为NSNumber类型,看看它是否返回null。
我试过了:
if(grade.text doubleValue] == 0){
//Not a number
}但它仍然可以接受"23f“。
发布于 2010-04-01 08:01:01
使用NSScanner检测字符串中是否包含有效的整数。
NSScanner * scanner = [NSScanner scannerWithString:myTextField.text];
NSInteger * integer;
if([scanner scanInteger:&integer]) {
// valid number found
} else {
// cry about it
}您可以通过验证UITextField委托方法textField:shouldChangeCharactersInRange:replacementString:中的文本来改进这一点,以防止用户甚至输入无效值。
发布于 2012-05-19 03:17:57
这似乎是NSRegularExpression的一个很好的用例。我认为这是可行的:
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[0-9\.]{1,2}|100"
options:NSRegularExpressionCaseInsensitive
error:&error];
NSUInteger matches = [regex numberOfMatchesInString:myTextField.text
options:0
range:NSMakeRange(0, [myTextField.text length])]如果匹配项等于0(未找到匹配项),则该字段中没有输入数字。这是我刚刚想到的--我还没有试过。
https://stackoverflow.com/questions/2557280
复制相似问题