判断字符串里是否有表情

刚遇到一个需求,发的字符里面不能有表情,下面是实现方法:

/**
 * 判断文字里面是否包含表情
 */
- (BOOL)isContainsEmoji:(NSString *)string {
    __block BOOL isEomji = NO;
    [string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:
     ^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
         const unichar hs = [substring characterAtIndex:0];
         if (0xd800 <= hs && hs <= 0xdbff) {
             if (substring.length > 1) {
                 const unichar ls = [substring characterAtIndex:1];
                 const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
                 if (0x1d000 <= uc && uc <= 0x1f77f) {
                     isEomji = YES;
                 }
             }
         } else if (substring.length > 1) {
             const unichar ls = [substring characterAtIndex:1];
             if (ls == 0x20e3) {
                 isEomji = YES;
             }
         } else {
             if (0x2100 <= hs && hs <= 0x27ff && hs != 0x263b) {
                 isEomji = YES;
             } else if (0x2B05 <= hs && hs <= 0x2b07) {
                 isEomji = YES;
             } else if (0x2934 <= hs && hs <= 0x2935) {
                 isEomji = YES;
             } else if (0x3297 <= hs && hs <= 0x3299) {
                 isEomji = YES;
             } else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50|| hs == 0x231a ) {
                 isEomji = YES;
             }
         }
     }];
    return isEomji;
}
时间: 2024-10-17 19:19:14

判断字符串里是否有表情的相关文章

ES6基础之——判断字符串里是否包含其他字符串

在ES6里面添加了一些字符串的方法:includes().startsWith().endsWith(),他们可以很方便的判断字符串里是否包含其他字符串: includes():是否包含了参数字符串,返回布尔值 startsWith():参数字符串是否在原字符串的头部,返回布尔值 endsWith():参数字符串是否在原字符串的尾部,返回布尔值 例子: let dessert = 'cake', drink = 'tea' let breakfast =`今天的早餐是 ${dessert} 与

如何判断字符串里都是空格

[[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] 除去空格后的长度 如果为0 就都是空格

判断一个字符串里是否含有某段字符?怎么截取一段字符?

写前端过程中遇到的最多的字符串操作莫过于 :判断一个字符串里是否含有某段字符 ,和 截取一段字符串. 字符串操作有很多方法,其实一般只要掌握以上两个就够用了,其他方法随他去吧,好,下面就以上两个方法讲解一下. 1.判断一个字符串是否含有某段字符,使用indexOf()方法: str.indexOf("参数1","参数2");参数1表示判断是否包含的小字符串, 参数2表示从左到有依次判断的起始位置,默认从0开始,str表示用于寻找的原字符串,ps:如果原字符串含多个判

判断一个字符串里是否包含了另一个字符串

NSString *str1 = @"comeontom哈哈回复好 sad 分身乏术的发烧发烧的"; NSString *str2 = @"comeontom"; if ([str1 rangeOfString:str2].location != NSNotFound) { NSLog(@"str1包含str2"); }else{ NSLog(@"str1不包含str2"); } 判断一个字符串里是否包含了另一个字符串

PHP统计字符串里单词查询关键字

<?function full_count_words($str) {     //返回完整数组,包含字符串里每个单词 $words = str_word_count($str,1);     $result = array();     foreach ($words as $w) {         $lw = strtolower($w);         //判断单词是否是第一次出现,是则设置为1,否则就增加1 if (!(isset($result[$lw]))) {         

13、如何拆分含有多种分隔符的字符串 14、如何判断字符串a是否以字符串b开头或结尾 15、如何调整字符串中文本的格式 16、如何将多个小字符串拼接成一个大的字符串

13.如何拆分含有多种分隔符的字符串 import re s = "23:41:2314\1234#sdf\23;" print(re.split(r'[#:\;]+',s))  14.如何判断字符串a是否以字符串b开头或结尾 import os,stat #找到当前目录下的文件名称,返回list ret = os.listdir('.') print(ret) for x in ret: #endswith传参类型是tuple if x.endswith(('.py','.html'

Swift3.0语言教程比较、判断字符串

Swift3.0语言教程比较.判断字符串 Swift3.0语言教程比较.判断字符串,在一个程序中字符串很多时,常常会做的操作就是对这些字符串进行比较和判断.本小节将讲解这些内容. 1.不区分大小写比较 字符串比较可以分为:不区分大小写比较.区分大小写比较以及本地化比较三部分.首先我们来看不区分大小写比较,不区分大小写比较顾名思义就是不区分字符串中字母的大小写,即A和a相同.在NSString中使用caseInsensitiveCompare(_:)方法实现这一功能,其语法形式如下: func c

SQL Server中判断字符串出现的位置及字符串截取

首先建一张测试表: create table teststring(name nvarchar(100));insert into teststringvalues('张三,李四,王五,马六,萧十一,皇宫'); 1.判断字符串中某字符(字符串)出现的次数,第一次出现的位置最后一次出现的位置: 查看','出现的次数 select LEN(name)-LEN(REPLACE(name,',','')) from teststring; 查看','第一次出现的位置: select CHARINDEX(

js实现将字符串里包含手机号的中间四位替换为****

var character = 'sd13564349471中';//字符 //1.判断该字符串里是否包含数字 function getNum(text){ var value = text.replace(/[^0-9]/ig,""); return value; } //2.if包含数字,判断数据长度是否为11 if(getNum(character).length == 11){ //3.截取所有数字,并用*替换4,4 var phNum = getNum(character),