我有一些文字,可能包括文字表情(例如:;)
,:(
)。上面的例子我想用它們相應的表情符號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