如何检查用户是否在我的UITextField
中输入了一个号码。基本上它是我在0-100之间接受的标记,它可以是小数。我听说我可以尝试将其转换为NSNumber
类型,看看它是否返回null。
我试过了:
if(grade.text doubleValue] == 0){
//Not a number
}
但是它仍然可以接受“23f”。
答案 0 :(得分:0)
使用NSScanner检测字符串中是否存在有效整数。
NSScanner * scanner = [NSScanner scannerWithString:myTextField.text];
NSInteger * integer;
if([scanner scanInteger:&integer]) {
// valid number found
} else {
// cry about it
}
您可以通过验证UITextField委托方法textField:shouldChangeCharactersInRange:replacementString:
中的文本来改进此问题,以防止用户输入无效值。
答案 1 :(得分:0)
这似乎是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(未找到匹配项),则表示您没有在该字段中输入数字。这只是我的头脑 - 我还没试过。