我必须检查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,但它不是相同的字符.