测试NSString是否包含字母

时间:2011-11-30 19:58:41

标签: iphone

我正在开发一个iPhone项目,我需要检查用户在UITextfield中的输入是否包含一个字母。更一般地说,如果NSString包含一个字母。

我尝试使用带有rangeofstring:@"A".location == NSNotFound的巨型if循环,然后执行OR rangeofstring:@"B".location == NSNotFound

依旧......

可是:

  1. 似乎无法正常工作
  2. 必须有一行简单的代码来检查NSString是否包含字母。
  3. 我一直在搜索这几个小时......有人可以回答这个问题???

2 个答案:

答案 0 :(得分:12)

使用NSCharacterSet。请注意,letterCharacterSet包含所有“字母”或“表意文字”。所以这包括é和中,但通常这就是你想要的。如果您想要一组特定的字母(例如英文字母),您可以使用NSCharacterSet构建自己的characterSetWithCharactersInString:

if ([string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]].location == NSNotFound)

答案 1 :(得分:7)

如果您想确保文本中包含某个字母(而不是任何字母),请使用rangeOfString:消息。例如,要确保文本包含字母“Q”:

NSString *string = @"poQduu";


if  ([string rangeOfString:@"Q"].location != NSNotFound) {
    DLog (@"Yes, we have a Q at location %i", [string rangeOfString:@"Q"].location );
}

正如其他人(Rob Napier)所说,如果你想找到任何一封信,请使用rangeOfCharacterFromSet:消息。

if ([string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]].location != NSNotFound) ...