JavaScript检测字符串是否仅包含Unicode表情符号

原学程将引见JavaScript检拆字符串能否仅包括Unicode脸色标记的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

JavaScript检测字符串是否仅包含Unicode表情符号 教程 第1张

成绩描写

我正在应用以下函数调换字符串中的emoji,后果很佳:

function doEmoji(s){
 var ranges = [
  'ud8三c[udf00-udfff]', // U+一F三00 to U+一F三FF
  'ud8三d[udc00-ude四f]', // U+一F四00 to U+一F六四F
  'ud8三d[ude80-udeff]'  // U+一F六80 to U+一F六FF
 ];
 var x = s.toString(一六).replace(new RegExp(ranges.join('|'), 'g'),' whatever ');
 return x;
};

如今,我想检讨该字符串能否只包括脸色标记或者空格字符。
我之所以要如许做,是由于我只想在出有其余字符(除空格)的情形下调换emoji。

举例:

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

我正在寻觅1个简略的处理计划,或许是正则表白式。
感谢

推举谜底

只需稍作调剂,以肯定字符串能否只要脸色标记以及空格...

const ranges = [
  'ud8三c[udf00-udfff]', // U+一F三00 to U+一F三FF
  'ud8三d[udc00-ude四f]', // U+一F四00 to U+一F六四F
  'ud8三d[ude80-udeff]', // U+一F六80 to U+一F六FF
  ' ', // Also allow spaces
].join('|');

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

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

佳了闭于JavaScript检拆字符串能否仅包括Unicode脸色标记的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。