iOS禁止输入emoji表情
因为emoji编码在android或者pc设备没有很好的支持,所以有时候为了禁止emoji表情的输入,因为关闭不了系统emoji的键盘,那只能根据编码把emoji表情过滤掉,写了一个NSString的拓展,用来判断是不是emoji编码:
@implementation NSString(Emoji)
+(BOOL)isContainsEmoji:(NSString *)string {
__block BOOL isEomji = NO;
[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequencesusingBlock:
^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
const unichar hs = [substring characterAtIndex:0];
// surrogate pair
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 {
// non surrogate
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;
}
这样在textview或textfield的delegate判断一下,即可禁止输入emoji,如下:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
//emoji无效
if([NSString isContainsEmoji:string])
{
return NO;
}
}
当然,最好的方法还是做一套emoji的编码解码,以支持其他非ios设备。不然禁止这个功能有点说不过去。
转载于:https://www.cnblogs.com/vicstudio/archive/2013/05/30/3109335.html
iOS禁止输入emoji表情相关推荐
- iOS中Emoji表情的判断
问题 服务器端不支持Emoji表情,因此客户端在上传用户输入时,不能包含Emoji表情. 解决方案 在客户端发送请求前,判断用户输入中是否含有表情,如果含有表情,则提示用户重新输入.这个过程关键是如何 ...
- Android IOS风格Emoji表情,简单实用
相信大家做项目的时候,特别是聊天相关的,一般都需要用到Emoji. 但是Emoji表情在安卓和IOS两个平台上,显示效果是不一样的,如下图: 言归正传,大家都知道,Emoji就是一组Unicode编码 ...
- android显示ios emoji表情符号,教程:在 Android 上也能用 iOS 新 Emoji 表情
那是一个阳光明媚的周末,我惬意的躺在床上用着我的 Android 机刷微博,看着网上那些段子手,心情无比的舒畅.直到我看见这么一条: 瞬间百万头羊驼从我心头奔过,他到底发了些什么!?为什么我看不见!! ...
- iOS 过滤emoji表情
iOS输入框过滤emoji表情 // // ViewController.m // test // // Created by 郭宇 on 13-11-15. // Copyright (c) 201 ...
- iOS的emoji表情在数据库不支持UTF-8格式的处理
前言 最近遇到苹果手机自带的emoji表情的处理问题,由于我们的数据库编码是GBK编码,而苹果的键盘自带的emoji表情,苹果系统的编码格式是UTF8编码,所以在把emoji表情存到GBK编码的数据库 ...
- android edittext 输入法表情,Android开发中EditText禁止输入Emoji表情符
在开发中可能多处会用到过滤Emoji表情符,一般情况下,我们会通过EditText的addTextChangedListener()监听来过滤Emoji表情,但在实际开发中会遇到多个EditText, ...
- 禁止输入emoji表情
三个文本框textField UITextView都要禁止苹果自带emoji 后来发现是原来写的方法不能覆盖所有的表情,新增的表情过滤不掉,只好再加了一个方法 http://www.jianshu.c ...
- iOS开发 ☞ emoji表情大全
表情链接 http://apps.timwhitlock.info/emoji/tables/unicode#block-4-enclosed-characters http://emojipedia ...
- 输入框禁止输入emoji表情
jq中使用 $(function () {if(navigator.userAgent.indexOf('Android') > -1 || navigator.userAgent.indexO ...
最新文章
- 又现神论文!《本人娶刘亦菲的可行性报告》省级期刊收录
- CSS基础篇--css reset重置样式有那么重要吗?
- 利用Traefik+Docker构建可弹性扩展的微服务或服务集群
- Jsoup根据URL加载一个Document
- 市场活动课件:SQL Server 索引优化
- 霍强:创新研究到底应该怎么做?
- 剑指offer(C++)-JZ8:二叉树的下一个结点(数据结构-树)
- WebGIS中利用AGS JS+eCharts实现一些数据展示的探索
- 使用Movavi Photo Editor如何向视频中添加转场
- 中国象棋游戏设计与实现
- X509TrustManager信任SSL证书
- 桌面创建快捷方式 不显示图标
- Vscode 文件中 查找替换 局部查找 替换快捷键
- pytorch绘制loss和accuracy曲线
- Ubuntu下邮件服务器的配置——SendMail
- android用户和AID
- 东南亚电商龙头 shopee 社招,校招 内推(长期有效)
- android 字体加粗
- 考试末名的英国教授获诺贝尔奖
- 从优步僵尸车事件看源码保护的必要性
热门文章
- hadoop jar
- C语言switch如何退出,C语言萌新,想问问如何让下面那个switch函数输出的结果继续...
- oracle使用连接池,使用Oracle的数据连接池
- 网工年薪100w+,你在哪个阶段?
- 云计算架构师分享:容器云在金融企业的落地方案 | 周末送资料(原题:某保险公司容器云PaaS平台建设实践经验分享)
- 算法学习总结(3)——二叉树数据结构重点知识总结
- Mysql学习总结(53)——使用MySql开发的Java开发者规范
- Mysql学习总结(42)——MySql常用脚本大全
- JavaScript学习总结(5)——Javascript面向(基于)对象编程
- Maven学习总结(4)——Maven核心概念