-(BOOL)isContainsEmoji:(NSString *)string {
__blockBOOL isEomji =NO;
[string enumerateSubstringsInRange:NSMakeRange(0, [stringlength])options:NSStringEnumerationByComposedCharacterSequencesusingBlock:
^(NSString *substring,NSRange substringRange,NSRange enclosingRange,BOOL *stop) {
constunichar hs = [substringcharacterAtIndex:0];
if (0xd800 <= hs && hs <=0xdbff) {
if (substring.length >1) {
constunichar ls = [substringcharacterAtIndex:1];
constint uc = ((hs -0xd800) *0x400) + (ls -0xdc00) +0x10000;
if (0x1d000 <= uc && uc <=0x1f77f) {
isEomji =YES;
}
}
}elseif (substring.length >1) {
constunichar ls = [substringcharacterAtIndex:1];
if (ls ==0x20e3) {
isEomji =YES;
}
}else {
if (0x2100 <= hs && hs <=0x27ff && hs !=0x263b) {
isEomji =YES;
}elseif (0x2B05 <= hs && hs <=0x2b07) {
isEomji =YES;
}elseif (0x2934 <= hs && hs <=0x2935) {
isEomji =YES;
}elseif (0x3297 <= hs && hs <=0x3299) {
isEomji =YES;
}elseif (hs ==0xa9 || hs ==0xae || hs ==0x303d || hs ==0x3030 || hs ==0x2b55 || hs ==0x2b1c || hs ==0x2b1b || hs ==0x2b50|| hs ==0x231a ) {
isEomji =YES;
}
}
}];
return isEomji;
}
本文介绍了一种检测字符串中是否包含emoji表情的有效方法。通过遍历字符串中的每个字符并检查其Unicode编码来判断该字符是否属于emoji表情的Unicode范围。此方法能够准确识别包括组合字符在内的emoji表情。
1863

被折叠的 条评论
为什么被折叠?



