JavaScript检测字符串是否仅包含Unicode表情符号 [英] javascript detect if a string contains only unicode emojis
本文介绍了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屋!
查看全文