javascript - jquery 删除所有表情符号包括新的

标签 javascript jquery unicode

我对emoji字符unicode一无所知,并试图从输入中删除所有表情符号,发现了一个代码:

var ranges = [
  '\ud83c[\udf00-\udfff]', // U+1F300 to U+1F3FF
  '\ud83d[\udc00-\ude4f]', // U+1F400 to U+1F64F
  '\ud83d[\ude80-\udeff]'  // U+1F680 to U+1F6FF
];

<强> JSFiddle (从CSS部分复制表情符号进行测试)

它将删除一些但不是新的表情符号。如何将这些新的表情符号 unicode 范围包含到此代码中?

例如,这不会删除 Nerd 脸表情符号,并且unicode为here

最佳答案

function removeEmoji(text) {
  var res = '';

  for(var i = 0; i < text.length; i++) {
    var c = text[i];

    // Get UTF-32 code
    var code = c.charCodeAt(0);
    if(code >= 0xd800 && code < 0xdc00) {
      c += text[++i];
      code = (code - 0xd800) << 10;
      code |= c.charCodeAt(1) - 0xdc00;
      code += 0x10000;
    }

    // Skip Emoji symbols
    if (code < 0x1f000 || code >= 0x1fa00) {
      res += c;
    }
  }

  return res
}

var s = removeEmoji('a😀b'); // 'ab'

关于javascript - jquery 删除所有表情符号包括新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46367464/

相关文章:

javascript - 在 UIWebView 中滚动网页

javascript - div 上的 Onclick 事件不起作用

jquery - 获取jquery datetimepicker到网格到分钟

ruby - 如何在 Windows 上从 Ruby 运行非 ASCII/Unicode shell 命令?

php - 使用 Ctrl+Click 选择多个图像并使用 PHP 上传

javascript - React Router v4.0 - 重定向到路由器范围之外的页面

jQuery 淡入淡出而不丢失容器空间

c - 如何迭代Unicode字符? (不是代码点)

objective-c - 使用 Objective C/Cocoa 对 unicode 字符进行转义,即\u1234

javascript - Auth.$getUser 返回 null,即使用户已登录(AngularFire、Firebase)