我必须检查NSString中是否存在俄语字符.
我正在使用以下代码:
NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"БГДЁЖИЙЛПФХЦЧШЩЪЫЭЮЯ"] invertedSet]; BOOL check = ([nameValue rangeOfCharacterFromSet:set].location == NSNotFound); return check;
但它总是返回FALSE.
任何人都可以告诉我我的代码有什么问题吗?
谢谢
解决方法
目前,您的条件检查字符串中不存在非俄语(技术上,非西里尔语)字符,而不是字符串中存在西里尔字符.对于完全由拉丁字母1中没有等效字符的西里尔字符组成的字符串,您的代码将返回YES.
NSCharacterSet * set = [NSCharacterSet characterSetWithCharactersInString:@"БГДЁЖИЙЛПФХЦЧШЩЪЫЬЭЮЯ"]; return [nameValue rangeOfCharacterFromSet:set].location != NSNotFound;
1您忘记在列表中包含软停止,它看起来像小写字母b,但它不是相同的字符.