2015-04-29 3 views
2

У меня есть текст, который может содержать текстовые смайлики (например: ;), :(). Я хотел бы заменить их соответствующими символами unoode emoji ( и ) для приведенного выше примера.Замените смайлики emoji

Мое намерение состоит в том, чтобы затем запустить twimoji на этот текст.

Я знаю, что могу найти и заменить, но я бы предпочел использовать что-то уже готовое, которое делает это уже.

Любые библиотеки, которые уже реализуют это? Я считаю, что список общих смайликов - это самая большая часть работы здесь.

+2

https://github.com/kof/emoticons – OddDev

+1

@OddDev Я не думаю, что библиотека заменяет текст смайликов с юникод символов. –

+0

@Moogs, и было бы болью потратить эти 5 минут, чтобы позволить этому сделать это? – OddDev

ответ

2

Не уверен, что там уже есть библиотека, которая превращает текстовые смайлики в символы Юникода, но вот пример того, как вы могли бы реализовать его самостоятельно.

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/

+0

«\ uFE0F», когда сердце вызывает появление второго невидимого символа Юникода - мне нужно дважды ударить назад, чтобы удалить сердце. В принципе, это необязательно. – Xufox

+0

Я понимаю, что это так же глупо, как работает 'regex.replace'. Мой вопрос больше касался уже сделанного решения или полной таблицы или эмоций, которые я могу использовать, вместо того, чтобы вручную перечислять их самостоятельно, сохраняя этот список. – WhyNotHugo

+0

Возможно использование 'oninput' вместо' onkeyup' – math2001