remplacer emoji unicode symbole à l'aide de regexp dans javascript

Comme vous le savez tous emoji symboles sont codées jusqu'à 3 ou 4 octets, de sorte qu'il peut occuper 2 symboles dans mon string. Par exemple, " 😁la marche internationale😁'.longueur = 7
Je veux trouver ces symboles dans mon texte et de les remplacer à la valeur qui est fonction de son code.
Lecture DONC, je suis venu à XRegExp bibliothèque avec unicode plugin, mais n'ont pas trouvé la façon de le faire fonctionner.

var str = '😁wew😁';//\u1F601 symbol
var reg = XRegExp('[\u1F601-\u1F64F]', 'g'); // /[ὠ1-ὤF]/g -doesn't make a lot of sense  
//var reg = XRegExp('[\uD83D\uDE01-\uD83D\uDE4F]', 'g'); //Range out of order in character class
//var reg = XRegExp('\\p{L}', 'g'); //doesn't match my symbols
console.log(XRegExp.replace(str, reg, function(match){
   return encodeURIComponent(match);//here I want to have smth like that %F0%9F%98%84 to be able to map anything I want to this value and replace to it
}));

jsfiddle

Je ne veux vraiment pas de bruteforcer la chaîne à la recherche de la séquence de caractères à partir de ma gamme. Quelqu'un pourrait-il m'aider à trouver le moyen de le faire avec des regexp.

ÉDITÉ
Juste venu avec une idée de l'énumération de tous les emoji symboles. Mieux que brutforce mais toujours à la recherche de la meilleure idée

var reg = XRegExp('\uD83D\uDE01|\uD83D\uDE4F|...','g');
Pourquoi essayez-vous de faire correspondre les octets plutôt que le codepoints? L'exemple que vous avez à l'aide de '[\u1F601-\u1F64F]' est la bonne façon de répondre à ces points (bien que le bloc est U+1F300-U+1F5FF).
Non seulement octets, j'ai essayé plusieurs méthodes, mais peut-être que j'ai tort. Quelle serait la regexp avec ceux codepoints? XRegExp('[\u1F300-\u1F5FF]', 'g');?
Javascript ne prend pas en charge les caractères au-delà de U+FFFF nativement. \u1F601 dans un Javascript chaîne de code de deux caractères, U+1F60 suivie par ASCII de '1'. Il n'y a pas moyen d'utiliser U+1F601 dans une classe de caractères.
Regex /[\uD800-\uDBFF][\uDC00-\uDFFF]/g résolu mon problème. Il comprend non seulement les émoticônes, mais aussi des caractères spéciaux. Visées stackoverflow.com/questions/3744721/...

OriginalL'auteur Fedor Skrynnikov | 2014-02-25