2016-05-01 46 views
1

blah blah ::e||1f1e6-1f1ea:: blah blahのような文字列があり、それをblah blah blah blahに変換します。文字列をユニコード文字に置き換えます

は、\u{1f1e6}\u{1f1ea}と記述できます。

私は以下のコードを使用しましたが、記号ではなく\u{1f1e6}\u{1f1ea}この文字列に変換されます。

str.replace(/\:\:e\|\|(.*?)\:\:/g, function(x) { return x.replace(/-/g, '\}\\u\{'); }).replace(/\:\:e\|\|(.*?)\:\:/g, "\\u\{$1\}"); 

答えて

4

1f1e61f1eaとは、その文字の16進Unicodeコードポイントです。 String.fromCodePointを使用することができますが、IE用のPolyFillを使用する必要があります。

text.replace(/::e\|\|([a-f0-9\-]+)::/g, function(match, text) { 
    var code_points = text.split('-').map(function(n) { 
     return parseInt(n, 16); 
    }); 

    return String.fromCodePoint.apply(undefined, code_points); 
}); 
+0

「ありがとうございます。 0と7の間です。 '-'の数を確認し、' function(match、a、b、c ...) 'を使ってこのコードを書くことができます。 –

+0

@NaimBerkTumer:あなたは大きなグループとしてそれらを扱い、 '.split( ' - ')'で分割することができます。私の編集を参照してください。 – Blender

関連する問題