2017-06-18 16 views
0

特定のUnicode文字をEmojisに変換したいと思います。 関数から、私は文字列を取得し、時にはそれにemojisがありますが、Unicode(この\ ud83c \ uddee \ ud83c \ uddf9のように)です。 この関数にこれらのUnicode絵文字が含まれているかどうかを確認してからemojisに変換する必要があります。varにUnicode文字が含まれているかどうかをチェックしてemojisに変換する方法

このコード行では、これらのUnicode文字を削除しようとしましたが、機能しません。 しかし、私はこれらのUnicode文字をEmojisに変換し、それらを削除しない方法を見つける必要があります!

var fullnameWOE = fullname[1].replace(/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])/g, '') 

編集:まだ私はPHPファイルから絵文字を含む名前でこの文字列を取得していますことを追加する必要があり ...この問題を解決するためのいかなる方法を見出していないので、PHPを使用する任意の機会があるかどうかそれを解決するには?

+0

これらユニコードは既に絵文字を表すので、それらを変換しても意味がありません。 –

+0

編集:ここにはJavaScriptの例があります: '' –

+0

あなたは正しいですが、この関数は文字列 "Dan \ ud83c \ uddee \ ud83c \ uddf9"と "\ ud83c \ uddee \ ud83c \ uddf9"だけを警告しているときは、それは絵文字に変換されますが、この文字列は変換されません。 –

答えて

0

ユニコードが存在するかどうかを確認するには、How to find whether a particular string has unicode characters (esp. Double Byte characters)を参照してください。

しかし、絵文字で置き換えるには、辞書を使用することをお勧めします。

const raw = 'This string could contain an emoticon: {{example of emoticon unicode}}'; 
 

 
const EMOJS = { 
 
    'example of emoticon unicode': 'REPLACED WITH CORRESPONDING VALUE' 
 
}; 
 

 
function compile(input, dict = EMOJS) { 
 
    return Object 
 
    .keys(dict) 
 
    .reduce(
 
     (res, emojId) => { 
 
     let tmp; 
 
     do { 
 
      tmp = res; 
 
      
 
      res = res.replace(emojId, dict[emojId]); 
 
     } while(tmp !== res); 
 
     
 
     return res; 
 
     }, 
 
     input 
 
    ) 
 
} 
 

 
console.log({input: raw, output: compile(raw)});

関連する問題