iOS 表情筛选 emoji

很多时候我们需要判断用户输入的文字是否是表情,因为有些地方不允许用户输入表情,例如名字,昵称,个性签名等。网上也有很多方法检测,但大部分都是有漏洞的。所以在这里贴上一段代码,亲测有用测试输入的表情都能判断出来,如果大家用的有问题,敬请相告,改之。谢谢!

- (BOOL)isEmoji:(NSString *)string
{
    if ([string length]<2)
    {
        return NO;
    }

    static NSCharacterSet *_variationSelectors;
    _variationSelectors = [NSCharacterSet characterSetWithRange:NSMakeRange(0xFE00, 16)];

    if ([string rangeOfCharacterFromSet: _variationSelectors].location != NSNotFound) 
    {
        return YES;
    }
    const unichar high = [string characterAtIndex:0];
    // Surrogate pair (U+1D000-1F9FF)
    if (0xD800 <= high && high <= 0xDBFF) 
    {
        const unichar low = [string characterAtIndex: 1];
        const int codepoint = ((high - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
        return (0x1D000 <= codepoint && codepoint <= 0x1F9FF);
        // Not surrogate pair (U+2100-27BF)
    } 
    else 
    {
        return (0x2100 <= high && high <= 0x27BF);
    }
}
转载请注明出处,谢谢!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,738评论 25 709
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 5,208评论 0 1
  • 黄昏,一对情侣相约去图书馆自习,男生英俊,女生娇美。 男生对女生十分宠爱,帮她接好热水放上咖啡粉,小心翼翼的拿纸巾...
    郁至阅读 2,607评论 4 1
  • 我们好像什么都不缺,唯一缺少的就是勇气。 也许你会质疑,怎么可能,我缺钱花,我缺少知音,我缺少成功的朋友……那如果...
    金刚小强阅读 4,014评论 0 1
  • 当大家的注意力都集中在VR头显和游戏的时候,其实实现VR的普及还有其他方法,例如WebVR。近日,有消息称谷推出了...
    小太阳会发光诺阅读 3,244评论 0 0