emoji表情 检验

主要是为了在移动端输入框(input、textarea)输入emoji表情时,做校验。
移动端直接输入emoji表情,如:

参考文章:

  1. 阮一峰 Unicode与JavaScript详解
  2. 移动前端手机输入法自带emoji表情字符处理
  1. emoji表情用到的字符是4字节的UTF-16编码(utf-16有2字节和4字节两种编码)。
  2. javascript采用的是unicode编码(2字节的ucs-2编码)。
  3. emoji表情在js中被自动拆分成两个ucs-2的2字节字符。
  4. 4字节utf-16在js中被用两个字符来表示,高位范围为0xD800 - 0xDBFF,低位范围为0xDC00 - 0xDFFF
  5. 检测正则/[\uD800-\uDBFF][\uDC00-\uDFFF]/g
HTML:

JS:
var str=$.trim($("#emojiStr").val());
var patt = /[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则
if(patt.test(str)){
    alert("输入的字符非法!");
}
20150806190313935.png
表情对应%uD83d%uDE03

你可能感兴趣的:(emoji表情 检验)