2016-12-10 3 views
0

を絵文字検出し、偉大な働いている:JavaScriptの文字列はUnicodeのみが含まれている場合、私は文字列の絵文字を交換するには、次の機能を使用してい

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; 
}; 

は今、私はその文字列が唯一の絵文字やスペースが含まれているかどうかを確認したいです文字。 私がこれをやりたいのは、スペースを除く他の文字が存在しない場合にのみ、emojisを置き換えたいからです。

いくつかの例は:

Hello how are you? //do nothing 
‍‍ // replace emojis 
‍‍ // replace emojis 

私は多分、シンプルなソリューションのための正規表現を探しています。文字列は、絵文字とスペースのみいる場合 おかげ

+1

それやるべき選択肢を繰り返し停泊: '/ ^(?:alternative1 | alternative2 | alternative3を)* $ /.test(文字列) ' –

+0

あなたのコードはすでにその正規表現を持っています。 ?? – melpomene

答えて

0

だけマイナーな調整が...見つけるために

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; 
関連する問題