用表情符号替换表情符号

时间:2015-04-29 06:00:23

标签: javascript emoji emoticons

我有一些文字,可能包含文字表情符号(例如:;):()。对于上面的示例,我想用相应的表情符号unicode字符()替换它们。

我的意图是在这篇文章上运行twimoji。

我知道我可以找到并替换,但我宁愿使用已预先构建的东西来做到这一点。

任何已实现此功能的库?我相信常见表情符号清单是这里最重要的工作。

2 个答案:

答案 0 :(得分:2)

不确定是否已经有一个库将文本表情符号转换成unicode字符,但这里有一个例子,说明如何自己实现它。

 var map = {
   "<3": "\u2764\uFE0F",
   "</3": "\uD83D\uDC94",
   ":D": "\uD83D\uDE00",
   ":)": "\uD83D\uDE03",
   ";)": "\uD83D\uDE09",
   ":(": "\uD83D\uDE12",
   ":p": "\uD83D\uDE1B",
   ";p": "\uD83D\uDE1C",
   ":'(": "\uD83D\uDE22"
 };

 function escapeSpecialChars(regex) {
   return regex.replace(/([()[{*+.$^\\|?])/g, '\\$1');
 }

 document.getElementById('textarea').oninput = function() {
   for (var i in map) {
     var regex = new RegExp(escapeSpecialChars(i), 'gim');
     this.value = this.value = this.value.replace(regex, map[i]);
   }
 };

<强> http://jsfiddle.net/04zv3ozh/18/

答案 1 :(得分:0)

您可以使用此npm程序包,该程序包还提供微笑和相应表情的地图:

https://www.npmjs.com/package/smile2emoji