Javascript 用表情符号替换表情符号
我有一些文字,可能包括文字表情(例如:Javascript 用表情符号替换表情符号,javascript,emoji,emoticons,Javascript,Emoji,Emoticons,我有一些文字,可能包括文字表情(例如:;),:()。我想用相应的表情符号unicode字符替换这些符号(不确定是否已经有一个库可以将文本表情符号转换为unicode字符,但下面是一个示例,说明您可以如何自己实现它 var map = { "<3": "\u2764\uFE0F", "</3": "\uD83D\uDC94", ":D": "\uD83D\uDE00", ":)": "\uD83D\uDE03", ";)": "\uD83D\uDE09"
;)
,:(
)。我想用相应的表情符号unicode字符替换这些符号(不确定是否已经有一个库可以将文本表情符号转换为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]);
}
};
var映射={
“您可以使用此npm软件包,该软件包还提供微笑地图和相应的表情符号:
@OddDev我不认为library会用unicode字符替换文本表情。@Moogs,花这5分钟让它这么做会很痛苦吗?@OddDev看起来你必须手动定义所有表情的列表(这是你想要避免的),并用图像替换它们。在那里对我没有任何用处。位于心脏的\uFE0F
会导致添加第二个不可见的Unicode字符 — 我必须按退格键两次才能删除心脏。基本上没有必要。我知道这就像运行regex.replace
一样简单。我的问题更多地指向一个已经完成的解决方案,或者一个完整的表或我可以使用的情绪,而不是自己手动列出它们来维护这个列表。也许可以使用oninput
而不是onkeyup
可以在此处找到完整的ascci emojis列表