【问题标题】:jquery remove all emoji include newjquery 删除所有表情符号包括新的
【发布时间】:2017-09-22 14:45:25
【问题描述】:

我对 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 face 表情符号,并且 unicode 是 here

【问题讨论】:

    标签: javascript jquery unicode


    【解决方案1】:
    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'
    

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 2021-09-19
      • 2017-06-15
      • 1970-01-01
      相关资源
      最近更新 更多