测试NSString是否包含字母

Jud*_*phy 4 iphone

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

我用一个巨大的if循环尝试了这个,rangeofstring:@"A".location == NSNotFound然后做了ORrangeofstring:@"B".location == NSNotFound

等等....

但:

  1. 它似乎不起作用
  2. 必须有一行简单的代码来检查NSString是否包含字母.

我一直在搜索这几个小时......有人可以回答这个问题吗???

Rob*_*ier 12

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

if ([string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]].location == NSNotFound)
Run Code Online (Sandbox Code Playgroud)


Mik*_*ahy 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 );
}
Run Code Online (Sandbox Code Playgroud)

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

if ([string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]].location != NSNotFound) ...
Run Code Online (Sandbox Code Playgroud)