emoj表情过滤

用法:  isEmojiCharacter(input_value)   //  提交时候校验。

function isEmojiCharacter(substring) {

for ( var i = 0; i < substring.length; i++) {

var hs = substring.charCodeAt(i);

if (0xd800 <= hs && hs <= 0xdbff) {

if (substring.length > 1) {

var ls = substring.charCodeAt(i + 1);

var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;

if (0x1d000 <= uc && uc <= 0x1f77f) {

return true;

}

}

} else if (substring.length > 1) {

var ls = substring.charCodeAt(i + 1);

if (ls == 0x20e3) {

return true;

}

} else {

if (0x2100 <= hs && hs <= 0x27ff) {

return true;

} else if (0x2B05 <= hs && hs <= 0x2b07) {

return true;

} else if (0x2934 <= hs && hs <= 0x2935) {

return true;

} else if (0x3297 <= hs && hs <= 0x3299) {

return true;

} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030

|| hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b

|| hs == 0x2b50) {

return true;

}

}

}

}

原文地址:https://www.cnblogs.com/ivan5277/p/9958303.html

时间: 2024-10-17 02:53:39

emoj表情过滤的相关文章

nodejs,javascript过滤emoj表情

1 前言 由于带emoj表情的昵称无法存储在mysql character_set_server= utf8模式下,按照参考文章[1],改成utf8mb4,无效(可能使用方法不对). 总体思路是,把昵称过滤emoj表情,得到过滤后的昵称. 2 代码 function filterNicknameWithEmoj(nickname){ var regStr = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|

如何将Emoj表情插入mysql5.6数据库__python+mysqldb

废话不多说,相信看到这里的看客已经看过很多配置文件的设置方法.但是问题还是没有解决.本文就详细记录一下我的解决方法吧. 我的环境:mysql5.6+python2.7.3+MySQLdb1.2.4 1.桌面上右击 计算机,选择"管理", 选择"服务和应用程序"---"服务", 在里面找到MySQL56的服务. 2.右击 MySQL服务,查看"属性":往后拖一下,找到-default-file下图中画框部分,这里指明了MySQL

Android--&gt;轻松打造带删除按钮的输入框(EditText),附Emoji表情过滤

输入框带删除按钮, 此乃标配, 实现起来方法也很多, 网上开源也很多. 但是, 没事就喜欢瞎折腾. 上图说话. 只是在原生的基础上加了扩展. 相对来说入侵非常少, 使用方法和原生的一模一样.无任何阉割. 完整代码: public class ExEditText extends AppCompatEditText { Rect clearRect = new Rect(); public ExEditText(Context context) { super(context); } public

微信表情过滤 java &quot;java.sql.SQLException: Incorrect string value: &#39;\&quot;

iOS 5.0之前,苹果都是采用3个字节来承接emoji表情,Java的普通char可以支持显示.但iOS 5.0之后, 苹果升级了系统自带的emoji表情输入法,用的Unicode 6标准来统一,是采用4个bytes来承接一个 emoji表情.如果不做处理的话,这种表情直接存储到mysql5.5以下的数据库是会报错的. 就像这两个表情一样:, 在Windows 8以下估计都不支持显示,可能会显示成框框,可能压根就是空白, 你可以在Mac中使用Safari浏览器中,就可以看到.经过测试,在Mac

SpringBoot+Mysql 无法保存emoj表情?

尤记得很久以前,想存 emoj 表情到 mysql 中,需要额外的将 emoj 表情转码之后保存,每次读取时,再解码还原成一下:每次这种 sb 的操作,真心感觉心塞,那么有没有办法直接存呢? mysql 本身可以通过选择编码集(如 utfbmb4)来支持 emoj 表情,然而今天遇到了一个相当鬼畜的问题,表中可以直接写入 emoj 表情,但是通过 spring boot 代码塞入的 emoj 时,却抛出异常: Caused by: java.sql.SQLException: Incorrect

Java 解决Emoji表情过滤问题

Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错. 原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去. 方法1.将已经建好的表也转换成utf8mb4 2,写个工具类:过滤掉emoji表情符号 public class EmojiFilter { private static boolean isEmojiCharacter(char codePoint) { return (codePoint =

textView中判断文本长度,自定义表情长度为1,emoj表情长度为1,输入限制

  static const int MAX_LIMIT_NUMS = 100; /**< 输入个数限制 */ // self.inputNumberTipsLabel 控制器的view上一个用于展示输入数量提示的一个label #pragma mark - UITextViewDelegate - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSStr

php过滤表单输入的meoji表情

1.过滤emoji表情的原因 在我们的项目开发中,emoji表情是个麻烦的东西,即使我们可以能存储,也不一定能完美显示,因为它的更新速度很快:在iOS以外的平台上,例如PC或者android.如果你需要显示emoji,就得准备一大堆emoji图片并使用第三方前端类库才行.即便如此,还是可能因为emoji图片不够全而出现无法显示的情况在大多数业务场景下,emoji也不是非要不可的.我们可以适当地考虑干掉它,节约各种成本. 2.php过滤emoji原理 Emoji (絵文字,词义来自日语えもじ,e-

[转]PHP开发中涉及到emoji表情的三种处理方法

最近几个月做微信开发比较多,存储微信昵称必不可少,可这万恶的微信支持emoji表情做昵称,这就有点蛋疼了 一般Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串.这是怎么回事呢? 原来是因为Mysql的utf8字符集是3字节的,而emoji是4字节,这样整个昵称就无法存储了.这要怎么办呢?我来介绍几种方法 1.使用utf8mb4字符集 如果你的mysql版本>=5.5.3,你大可直接将utf8直接升级为utf8mb4字符集这