测试NSString是否包含字母



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

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

等....

但:

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

我已经搜索了几个小时了…有人能回答这个问题吗?

使用NSCharacterSet。注意letterCharacterSet包括所有"字母"或"表意文字"。这包括,但通常这是你想要的。如果你想要一组特定的字母(比如英文字母),你可以使用characterSetWithCharactersInString:来构建你自己的NSCharacterSet

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

如果您想确保文本中有一个特定的字母(而不是任何字母),请使用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) ...

最新更新