iOS 过滤输入Emoji表情的问题
来源:互联网 发布:广告公司开单软件 编辑:程序博客网 时间:2024/05/16 14:57
服务器端不支持Emoji表情,因此客户端在上传用户输入时,不能包含Emoji表情。
在客户端发送请求前,判断用户输入中是否含有表情,如果含有表情,则提示用户重新输入。这个过程关键是如何判断字符串中是否含有Emoji表情。
以下是具体代码,可以写到工具类中,以后肯定会有用到
//判断是否为表情符号
+ (BOOL)stringContainsEmoji:(NSString *)string
{
__blockBOOL returnValue = NO;
[string enumerateSubstringsInRange:NSMakeRange(0, [stringlength])
options:NSStringEnumerationByComposedCharacterSequences
usingBlock:^(NSString *substring,NSRange substringRange, NSRange enclosingRange,BOOL *stop) {
const unichar hs = [substringcharacterAtIndex:0];
if (0xd800 <= hs && hs <=0xdbff) {
if (substring.length >1) {
const unichar ls = [substringcharacterAtIndex:1];
const int uc = ((hs -0xd800) * 0x400) + (ls -0xdc00) + 0x10000;
if (0x1d000 <= uc && uc <=0x1f77f) {
returnValue =YES;
}
}
} else if (substring.length >1) {
const unichar ls = [substringcharacterAtIndex:1];
if (ls == 0x20e3) {
returnValue =YES;
}
} else {
if (0x2100 <= hs && hs <=0x27ff) {
returnValue =YES;
}else if (0x2B05 <= hs && hs <=0x2b07) {
returnValue =YES;
}else if (0x2934 <= hs && hs <=0x2935) {
returnValue =YES;
}else if (0x3297 <= hs && hs <=0x3299) {
returnValue =YES;
}else if (hs ==0xa9 || hs == 0xae || hs ==0x303d || hs == 0x3030 || hs ==0x2b55 || hs == 0x2b1c || hs ==0x2b1b || hs == 0x2b50) {
returnValue =YES;
}
}
}];
return returnValue;
}
- iOS 过滤输入Emoji表情的问题
- iOS 输入框过滤emoji表情
- php过滤表单输入的emoji表情
- iOS 过滤emoji表情
- ios过滤emoji表情
- iOS emoji表情过滤
- 更完美的《iOS中textField、textView判断过滤禁用emoji表情》,解决过滤表情后九宫格输入不了问题
- iOS textView的emoji表情过滤
- iOS过滤emoji (处理文本输入框的系统表情)
- iOS禁止输入emoji表情
- iOS禁止输入emoji表情
- 在iOS中emoji表情的判断、过滤和禁用
- iOS输入框禁止输入emoji表情
- emoji 表情过滤 解决 sogo 输入法输入表情 服务器不支持
- 解决protostuff+redis输入emoji表情出现乱码的问题
- ios emoji表情的保存
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- ios 判断禁止输入emoji表情
- java回忆录—I/O流详解补充
- RDD之aggregate操作
- JAVA 递归 汉诺塔
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树六:哈夫曼编码
- iOS 过滤输入Emoji表情的问题
- UE4编译专用服务器
- glassfish restful web service 配置文件 web.xml
- IDEA 15 破解
- SVN的操作步骤和使用
- UVa-11988-Broken Keyboard (a.k.a. Beiju Text)
- 最小生成树算法
- 核电站问题
- 【2016-08-08】