我有一些文字,可能包括文字表情(例如:;)
,:(
)。上面的例子我想用它们相应的表情符号Unicode字符(和
)替换它们。用表情符号替换表情符号
我的意图是然后在这个文本上运行twimoji。
我知道我可以找到并替换,但我宁愿使用已经预先构建的东西,它已经这样做了。
任何已经实现了这个功能的库?我相信常见的表情符号列表是这里最大的工作。
我有一些文字,可能包括文字表情(例如:;)
,:(
)。上面的例子我想用它们相应的表情符号Unicode字符(和
)替换它们。用表情符号替换表情符号
我的意图是然后在这个文本上运行twimoji。
我知道我可以找到并替换,但我宁愿使用已经预先构建的东西,它已经这样做了。
任何已经实现了这个功能的库?我相信常见的表情符号列表是这里最大的工作。
不知道是否已经有一个库将文本表情符号转换为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]);
}
};
心脏中的'\ uFE0F'会导致添加第二个不可见的Unicode字符 - 我必须回退两次以删除心脏。基本上没有必要。 – Xufox
我明白这和运行'regex.replace'一样简单。我的问题更多地指向已经完成的解决方案,或者我可以使用的完整表格或情绪,而不是自己手动列出维护此列表。 – WhyNotHugo
也许使用'oninput'而不是'onkeyup' – math2001
https://github.com/kof/emoticons – OddDev
@OddDev我不认为库替换文本表情符号与Unicode字符。 –
@Moogs,投资这5分钟让它这样做会很痛苦吗? – OddDev