Показать сообщение отдельно
  #7 (permalink)  
Старый 23.06.2009, 00:15
Аватар для NightmareZ
Интересующийся
Отправить личное сообщение для NightmareZ Посмотреть профиль Найти все сообщения от NightmareZ
 
Регистрация: 06.08.2008
Сообщений: 21

Не совсем то. Дело в том, что я не сам определяю смайлы. Я ищу те, которые обычно применяются юзверями, например ;-) и прочие.

Приведу фрагмент кода:
var smiles = [
    ["http://savepic.ru/708616.gif", ":-)", [":\\)", ":-\\)", "\\(:", "\\(-:"]],
    ["http://savepic.ru/708610.gif", ":-(", [":\\(", ":-\\(", "\\):", "\\)-:"]],
    ["http://savepic.ru/695298.gif", ";-)", [";-\\)", ";\\)", "\\(;", "\\(-;"]],
    ["http://savepic.ru/698376.gif", ":-P", [":-P", ":P", ":-p", ":p"]],
    ["http://savepic.ru/696328.gif", "O_O", ["O_O", "o_o", "OO", "oo"]],
];

var blocks = document.getElementsByClassName('block');
for (b = 0; b < blocks.length; b++)
    for (i = 0; i < smiles.length; i++)
        for (j = 0; j < smiles[i][2].length; j++)
        {
            var sm = smiles[i][2][j];
            var reg = new RegExp("\\.\\,\\(\\)" + sm + "\\.\\,\\(\\)");
            var result = blocks[b].innerHTML.replace(reg, "<img src=\"" + smiles[i][0] + "\" />");
            blocks[b].innerHTML = result;
        }


Т.е. я ищу элементы, определённые в smiles[][2], заменяю их тегами img с href из smiles[][0].
По-идее, найденный текст, например, oo может быть частью слова, а не смайлом.
Потому я определяю смайл, как фрагмент обрамлённый в пробелы|знаки_препинания|с обки|символы_перевода_стро ки ну и он может находиться либо в начале текста либо в конце.
Ответить с цитированием