首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITextfield检查是否为数字

问UITextfield检查是否为数字
EN

Stack Overflow用户
提问于 2010-04-01 07:52:55
回答 2查看 2.2K关注 0票数 1

如何检查用户是否在我的UITextField中输入了号码。基本上,它是我接受的0-100之间的一个分数,它可以是一个小数。我听说我可以尝试将它转换为NSNumber类型,看看它是否返回null。

我试过了:

代码语言:javascript
复制
if(grade.text doubleValue] == 0){
   //Not a number
}

但它仍然可以接受"23f“。

EN

回答 2

Stack Overflow用户

发布于 2010-04-01 08:01:01

使用NSScanner检测字符串中是否包含有效的整数。

代码语言:javascript
复制
NSScanner * scanner = [NSScanner scannerWithString:myTextField.text];
NSInteger * integer;
if([scanner scanInteger:&integer]) {
  // valid number found
} else {
  // cry about it
}

您可以通过验证UITextField委托方法textField:shouldChangeCharactersInRange:replacementString:中的文本来改进这一点,以防止用户甚至输入无效值。

票数 0
EN

Stack Overflow用户

发布于 2012-05-19 03:17:57

这似乎是NSRegularExpression的一个很好的用例。我认为这是可行的:

代码语言:javascript
复制
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(未找到匹配项),则该字段中没有输入数字。这是我刚刚想到的--我还没有试过。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2557280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档