我正在使用以下函数替换字符串中的表情符号并且效果很好:
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;
};
Run Code Online (Sandbox Code Playgroud)
现在我想检查该字符串是否仅包含表情符号或空格字符。我之所以要这样做是因为我只想在不存在其他字符(空格除外)的情况下才替换表情符号。
一些例子:
Hello how are you? //do nothing
?? // replace emojis
?? // replace emojis
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个简单的解决方案,也许是一个正则表达式。谢谢
只需稍作调整即可查找字符串是否只有表情符号和空格...
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;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5246 次 |
最近记录: |