问题
I have an UISearchBar, and I want my data to be sorted by pinYin if the user inputs English, and sorted by the characters themselves when the user inputs Chinese characters.
Is there something like
if (searchText isKindofClass: UTF-8String)
to detect if an NSString contains Chinese characters?
回答1:
You can use a NSRegularExpression to search for "character families" :
https://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html
http://userguide.icu-project.org/strings/regexp
They give an example of \p{script=cyrillic}, I guess by searching a little you'll find something related to Chinese.
回答2:
If you use \p{script=Han} to detecting Chinese, be sure to add '\' before \p. So it is like
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\\p{Script=Han}" options:NSRegularExpressionCaseInsensitive error:&error];
来源:https://stackoverflow.com/questions/11897531/detecting-if-nsstring-contains-chinese-characters