javascript检测一个字符串是否只包含unicode表情符号

标签 javascript emoji

<分区>

我正在使用以下函数替换字符串中的表情符号并且效果很好:

function doEmoji(s){
    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
    ];
    var x = s.toString(16).replace(new RegExp(ranges.join('|'), 'g'),' whatever ');
    return x;
};

现在我想检查该字符串是否仅包含表情符号或空格字符。 我之所以要这样做,是因为我只想在不存在其他字符(空格除外)时才替换表情符号。

一些例子:

Hello how are you? 👼 //do nothing
👨‍👩‍👧 // replace emojis
👨‍👩‍👧 👼 // replace emojis

我正在寻找一个简单的解决方案,也许是一个正则表达式。 谢谢

最佳答案

只需稍作调整即可确定字符串是否只有表情符号和空格...

const 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
  ' ', // Also allow spaces
].join('|');

const removeEmoji = str => str.replace(new RegExp(ranges, 'g'), '');

const isOnlyEmojis = str => !removeEmoji(str).length;

关于javascript检测一个字符串是否只包含unicode表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41079416/

相关文章:

javascript - Google Cloud 上的 Ajax 到 Python

javascript - lodash.without 函数删除具有特定字段的对象

javascript - 如何清除 Google map API3 中的标记

java - 在 JEditorPane 中设置内联文本和图像

ios - Swift countElements() 在计数标志 emoji 时返回不正确的值

android - strings.xml 文件中的表情符号?

javascript - 在 React + Typescript 中处理表单提交的最佳实践

javascript - 如何将焦点设置到文本框 Html.TextBoxFor - mvc 2

Python:从非 BMP unicode 字符中查找等效代理对

php - 表情符号从 Angularjs $http 到 PHP json_decode 并存储在 mySQL 中