我有一个允许用户输入数字的UITextField
iOS应用程序。我如何确保用户输入的值是有效数字(整数或十进制)。以下是我已经尽力了,但由于某种原因,它不会为十进制数的工作:如果我输入一个十进制数,如435.634,上面的代码在控制台日志返回“无效号码”检查NSString是否为有效数字 - 整数或十进制数字
NSCharacterSet *notDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
if ([numString rangeOfCharacterFromSet:notDigits].location == NSNotFound) {
NSLog(@"valid number");
}
else {
NSLog(@"invalid number");
}
。我不明白为什么这不起作用,因为我正在使用decimalDigitCharacterSet
?
使用'NSNumberFormatter',以正确处理特定于区域的数字。 – rmaddy
'decimalDigitCharacterSet'集合包含数字,不包含任何标点符号。 – rmaddy
@Supertecnoboff - 另一种选择是向用户显示数字键盘。不需要担心其他事情 - https://www.cocoacontrols.com/search?q=numeric –