JS判断与过滤的表情符号表情的方法
一、js判断文本中是否有表情符号表情
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){
返回true ;
}
}
} 否则如果 (substring.length> 1){
var ls = substring.charCodeAt(i + 1);
if (ls == 0x20e3){
返回true ;
}
} else {
如果 (0x2100 <= hs && hs <= 0x27ff){
返回true ;
} else if (0x2B05 <= hs && hs <= 0x2b07){
返回true ;
} else if (0x2934 <= hs && hs <= 0x2935){
返回true ;
} else if (0x3297 <= hs && hs <= 0x3299){
返回true ;
} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030
|| hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b
|| hs == 0x2b50){
返回true ;
}
}
}
}
二、js文件过滤的表情符号表情
使用JS过滤表情符号表情的主要原因:输入标签中输入表情符号表情,表单提交后插入数据库。报错原因:
因为UTF-8编码有可能是两个,三个,四个字节.Emoji表情是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。
于是找到两个解决方案:
1.将Mysql的编码从utf8转换成utf8mb4
2.前端JS校验过滤掉emoji表情
JS判断与过滤的表情符号表情的方法的更多相关文章
- 通过 JS 判断页面是否有滚动条的简单方法
前言 最近在写插件的过程中,需要使用 JS 判断是否有滚动条,搜了一下,大致方法都差不多,但都有些啰嗦,代码不够简洁.最终通过参考不同方法,写了一个比较简单的方法.在判断滚动条的同时也需要计算滚动条的 ...
- js判断两个日期是否相等的方法
今天优化代码的时候,发现一个问题,js比较日期是否相等时,我用==去比较,发现两个时间不相等但是运行结果却是true,然后去百度了下发现oldStartTime, startTime都是对象,类型为引 ...
- js 中 前端过滤数据到后端的方法
第一种方法: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF- ...
- js判断是否是大小写,数字等方法
function isEmail(str){ var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9- ...
- JS判断字符串是否包含某字符串 indexOf()方法使用
定义和用法 indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置. 开始的.如果没有找到子字符串,则返回 -1. 示例: <script type="text/jav ...
- js 判断值为Array or Object的方法
①obj instanceof Array / Object ②Array.prototype.isPrototypeOf(obj) ③Object.prototype.toString.call(o ...
- js判断pc端和移动端的方法
function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ["Android", " ...
- js判断上传文件大小
下面提供三款网页特效判断上传文件大小哦,这三种方法是现在限制文件上传大小比较好的方法,可以在客户上传文件时限制上传文件大小判断处理<!doctype html public "-//w ...
- UITextView/UITextField检测并过滤Emoji表情符号
UITextView/UITextField检测并过滤Emoji表情符号 本人在开发过程中遇到过这种情况,服务器端不支持Emoji表情,因此要求客户端在上传用户输入时,不能包含Emoji表情.在客户端 ...
随机推荐
- mimikatz记录
mimikatz需要管理员权限运行 vps监听 nc -lvp 4444 服务器管理员权限执行 mimikatz.exe ""privilege::debug"" ...
- Ubuntu输入密码后重新返回登陆界面
Xserver启动时,需要读取文件~/.Xauthority.由于权限不够,导致登录失败 解决办法 ctrl+alt+F1组合键进入终端,修改文件权限 # ls -l .Xauthority -rw- ...
- MySQL之系系统信息函数
1.VERSION() 用法:返回MySQL服务器的版本 举例: mysql> select VERSION(); +-----------+ | VERSION() | +---------- ...
- 谁还不知道Java String的那点事
String是我们平时接触最多的一种数据类型之一,不同语言有自己内部的实现,今日一起看下Java中String的内部实现. 常问问题 面试中常被提及的String问题 String为什么是Final的 ...
- MYSQL的操作命令
一.御前 1 win+R DOS 输入 net start mtsql 和 net stop mysql 启动和停止Mysql 服务,也可通过计算机——管理——服务和应用程序——服务——MYSQL— ...
- Linux 01 Liunx系统简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位 ...
- Linux下的帮助命令(man/help/info)
1.man 帮助命令 用法 man(选项)(参数) 选项 -a:在所有的man帮助手册中搜索: -f:等价于whatis指令,显示给定关键字的简短描述信息: -P:指定内容时使用分页程序: -M:指定 ...
- winform中使用缓存
文章:Winform里面的缓存使用 另外一篇文章:缓存-MemoryCache Class
- Paper Reading:HyperNet
论文:HyperNet: Towards Accurate Region Proposal Generation and Joint Object Detection 发表时间:2016 发表作者:( ...
- Python多线程应用于自动化测试
Python多线程应用于自动化测试 将多线程在测试巧妙地应用,确实会带来很多好处,并且这是充分利用机器资源执行高效率测试很好的方式 # -*- coding: utf-8 -*- import thr ...