JavaScript检测字符串是否仅包含Unicode表情符号 [英] javascript detect if a string contains only unicode emojis

查看:0
本文介绍了JavaScript检测字符串是否仅包含Unicode表情符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下函数替换字符串中的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;
};
现在,我想检查该字符串是否只包含表情符号或空格字符。 我之所以要这样做,是因为我只想在没有其他字符(除了空格)的情况下替换emoji。

举例:

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表情符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆