iOS NSStringで絵文字を含んでいるかを判定
こちらから、絵文字のNSCharacterSet+EmojisAdditionカテゴリを使わせてもらった。
#import "NSString+isContainAddition.h" #import "NSCharacterSet+EmojisAddition.h" @implementation NSString (isContainAddition) - (BOOL)isContainEmoji { NSCharacterSet *emojiSet = [NSCharacterSet emojiCharacterSet]; return ([self rangeOfCharacterFromSet:emojiSet].location != NSNotFound) ? YES : NO; } - (BOOL)isContainCharacterString:(NSString *)str { NSString *specialCharacterString = str; NSCharacterSet *specialCharacterSet = [NSCharacterSet characterSetWithCharactersInString:specialCharacterString]; return ([self rangeOfCharacterFromSet:specialCharacterSet].location != NSNotFound) ? YES : NO; } @end
おまけとして、isContainCharacterString:という判定したい文字を入れた文字列を渡して含んでいるか見るメソッドも作った。
使用
NSLog(@"ss abcde : %@", @([@"ss" isContainCharacterString:@"abcde"])); NSLog(@"ssc abcde : %@", @([@"ssc" isContainCharacterString:@"abcde"])); NSLog(@"ssC abcde : %@", @([@"ssC" isContainCharacterString:@"abcde"])); NSLog(@"888 9654 : %@", @([@"888" isContainCharacterString:@"9654"])); NSLog(@"4 9654 : %@", @([@"4" isContainCharacterString:@"9654"]));
結果
ss abcde : 0 ssc abcde : 1 ssC abcde : 0 888 9654 : 0 4 9654 : 1
まあ、正規表現を使わなくても良い簡単な判定で使えるかな。