2012-08-10 62 views
2

我有一個UISearchBar,如果用戶輸入英文,我希望我的數據按pinYin排序,並在用戶輸入中文字符時按字符自己排序。檢測NSString是否包含中文字符

有什麼樣

if (searchText isKindofClass: UTF-8String) 

檢測是否含有NSString中國字?

+3

不管你輸入什麼字符,字符串的類型都不會改變。 – Woody 2012-08-10 08:23:24

回答

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}一個例子,我想通過搜索一點點,你就會發現相關給中國人。

+0

感謝您的回答!我只是使用'「[^ a-z]」'並檢查'numberOfMatches'是否返回大於零。 – Diremage 2012-08-13 02:32:33

+0

這是一種解決方法,但它不會匹配'我是29'。 – Cyrille 2012-08-13 08:13:58

+0

使用帶'NSRegularExpression'的'\ p {script = Han}' – 2013-12-02 07:03:03

2

如果您使用\p{script=Han}來檢測中文,請務必在\p之前加上'\'。所以它就像

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