我正在开发一个iPhone项目,我需要检查用户在UITextfield
中的输入是否包含一个字母。更一般地说,如果NSString
包含一个字母。
我尝试使用带有rangeofstring:@"A".location == NSNotFound
的巨型if循环,然后执行OR rangeofstring:@"B".location == NSNotFound
依旧......
可是:
我一直在搜索这几个小时......有人可以回答这个问题???
答案 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) ...