to-emoji
Version:
A lightweight package to easily convert strings to emojis, and vice-versa.
143 lines (139 loc) • 4.35 kB
JavaScript
function emojify(text) {
var result = text.replace(/\s/gi, " ").trim()
.replace(/a/gi, " \u{1F1E6}")
.replace(/b/gi, " \u{1F1E7}")
.replace(/c/gi, " \u{1F1E8}")
.replace(/d/gi, " \u{1F1E9}")
.replace(/e/gi, " \u{1F1EA}")
.replace(/f/gi, " \u{1F1EB}")
.replace(/g/gi, " \u{1F1EC}")
.replace(/h/gi, " \u{1F1ED}")
.replace(/i/gi, " \u{1F1EE}")
.replace(/j/gi, " \u{1F1EF}")
.replace(/k/gi, " \u{1F1F0}")
.replace(/l/gi, " \u{1F1F1}")
.replace(/m/gi, " \u{1F1F2}")
.replace(/n/gi, " \u{1F1F3}")
.replace(/o/gi, " \u{1F1F4}")
.replace(/p/gi, " \u{1F1F5}")
.replace(/q/gi, " \u{1F1F6}")
.replace(/r/gi, " \u{1F1F7}")
.replace(/s/gi, " \u{1F1F8}")
.replace(/t/gi, " \u{1F1F9}")
.replace(/u/gi, " \u{1F1FA}")
.replace(/v/gi, " \u{1F1FB}")
.replace(/w/gi, " \u{1F1FC}")
.replace(/x/gi, " \u{1F1FD}")
.replace(/y/gi, " \u{1F1FE}")
.replace(/z/gi, " \u{1F1FF}")
.replace(/!/gi, " \u{2757}")
.replace(/#/gi, " #\u{FE0F}\u{20E3}")
.replace(/\?/gi, " \u{2753}")
.replace(/!/gi, " \u{2757}")
.replace(/\$/gi, " \u{1F4B2}")
.replace(/\*/gi, " *\u{FE0F}\u{20E3}")
.replace(/\+/gi, " \u{2795}")
.replace(/-/gi, " \u{2796}")
.replace(/0/gi, " 0\u{FE0F}\u{20E3}")
.replace(/1/gi, " 1\u{FE0F}\u{20E3}")
.replace(/2/gi, " 2\u{FE0F}\u{20E3}")
.replace(/3/gi, " 3\u{FE0F}\u{20E3}")
.replace(/4/gi, " 4\u{FE0F}\u{20E3}")
.replace(/5/gi, " 5\u{FE0F}\u{20E3}")
.replace(/6/gi, " 6\u{FE0F}\u{20E3}")
.replace(/7/gi, " 7\u{FE0F}\u{20E3}")
.replace(/8/gi, " 8\u{FE0F}\u{20E3}")
.replace(/9/gi, " 9\u{FE0F}\u{20E3}")
return result
}
function deemojify(text) {
var result = text
.replace(/🇦/gi, "a")
.replace(/🇧/gi, "b")
.replace(/🇨/gi, "c")
.replace(/🇩/gi, "d")
.replace(/🇪/gi, "e")
.replace(/🇫/gi, "f")
.replace(/🇬/gi, "g")
.replace(/🇭/gi, "h")
.replace(/🇮/gi, "i")
.replace(/🇯/gi, "j")
.replace(/🇰/gi, "k")
.replace(/🇱/gi, "l")
.replace(/🇲/gi, "m")
.replace(/🇳/gi, "n")
.replace(/🇴/gi, "o")
.replace(/🇵/gi, "p")
.replace(/🇶/gi, "q")
.replace(/🇷/gi, "r")
.replace(/🇸/gi, "s")
.replace(/🇹/gi, "t")
.replace(/🇺/gi, "u")
.replace(/🇻/gi, "v")
.replace(/🇼/gi, "w")
.replace(/🇽/gi, "x")
.replace(/🇾/gi, "y")
.replace(/🇿/gi, "z")
.replace(/❓/gi, "?")
.replace(/❗/gi, "!")
.replace(/#️⃣/gi, "#")
.replace(/💲/gi, "$")
.replace(/\*️⃣/gi, "*")
.replace(/➕/gi, "+")
.replace(/➖/gi, "-")
.replace(/0️⃣/gi, "0")
.replace(/1️⃣/gi, "1")
.replace(/2️⃣/gi, "2")
.replace(/3️⃣/gi, "3")
.replace(/4️⃣/gi, "4")
.replace(/5️⃣/gi, "5")
.replace(/6️⃣/gi, "6")
.replace(/7️⃣/gi, "7")
.replace(/8️⃣/gi, "8")
.replace(/9️⃣/gi, "9")
.replace(/ +/gi, "%#KEPT_SPACE#%")
.replace(/\s/gi, "")
.replace(/%#KEPT_SPACE#%/gi, " ")
return result
}
function emoticonToEmoji(text) {
var result = text
.replace(/,:\)/gi, "\u{1F605}")
.replace(/,:\(/gi, "\u{1F613}")
.replace(/:\)/gi, "\u{1F642}")
.replace(/:\|/gi, "\u{1F610}")
.replace(/;\(/gi, "\u{1F62D}")
.replace(/:,\(|:'\(/gi, "\u{1F622}")
.replace(/>:\(/gi, "\u{1F620}")
.replace(/:P/g, "\u{1F61B}")
.replace(/:\$/gi, "\u{1F612}")
.replace(/:@/gi, "\u{1F621}")
.replace(/<3/gi, "\u{2764}")
.replace(/;\)/gi, "\u{1F609}")
.replace(/:,\)|:'\)/gi, "\u{1F602}")
.replace(/:O/gi, "\u{1F62E}")
.replace(/:D/gi, "\u{1F604}")
.replace(/:\(/gi, "\u{1F626}")
return result
}
function emojiToEmoticon(text) {
var result = text
.replace(/😅/gi, ",:)")
.replace(/🙂/gi, ":)")
.replace(/😦/gi, ":(")
.replace(/😭/gi, ";(")
.replace(/😐/gi, ":|")
.replace(/😢/gi, ":,(")
.replace(/😠/gi, ">:(")
.replace(/😛/g, ":P")
.replace(/😒/gi, ":$")
.replace(/😡/gi, ":@")
.replace(/❤/gi, "<3")
.replace(/😉/gi, ";)")
.replace(/😂/gi, ":')")
.replace(/😮/gi, ":O")
.replace(/😄/gi, ":D")
.replace(/😓/gi, ",:(")
return result
}
module.exports = { emojify, deemojify, emoticonToEmoji, emojiToEmoticon }