检测NSString是否包含中文字符

时间:2012-08-10 07:53:30

标签: iphone objective-c nsstring

我有UISearchBar,如果用户输入英文,我希望我的数据按pinYin排序,当用户输入中文字符时,我希望按字符本身排序。

是否有像

这样的东西
if (searchText isKindofClass: UTF-8String) 

检测NSString是否包含中文字符?

2 个答案:

答案 0 :(得分:6)

您可以使用NSRegularExpression搜索“角色系列”:

https://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

http://userguide.icu-project.org/strings/regexp

他们举了一个\p{script=cyrillic}的例子,我想通过搜索一下,你会找到与中文有关的东西。

答案 1 :(得分:2)

如果您使用\p{script=Han}来检测中文,请务必在\之前添加“\p”。所以它就像

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\\p{Script=Han}" options:NSRegularExpressionCaseInsensitive error:&error];