Что делает?
Преобразовывает наши закорлючки в смайлики,причем делает это на стороне клиента,естественно не утруждая ПХП в этом.
Можно хранить сообщения в том виде ,что приходят.
В качестве аргумента передаем ИД родительского блока ,который будем шуршать ,например
smileReplace('content')
или
smileReplace('comment')
function smileReplace(id) {
var str=document.getElementById(id).innerHTML;
str=str.replace(/\:\)/g,'<img src="./images/1.gif"/>');
str=str.replace(/\:\|/g,'<img src="./images/2.gif"/>');
str=str.replace(/\;\)/g,'<img src="./images/3.gif"/>');
str=str.replace(/\:D/g,'<img src="./images/4.gif"/>');
str=str.replace(/o_O/g,'<img src="./images/5.gif"/>');
str=str.replace(/\:\(/g,'<img src="./images/6.gif"/>');
document.getElementById(id).innerHTML=str;
}
Естественно можно дополнить еще всякими смайликами.
Спустя 7 минут, 41 секунда (14.04.2012 - 16:53) Nikitian написал(а):
Подобное+антимат. Делал для чата. Картинки брал из квипа колобков. На входе строка, на выходе строка.
Свернутый текст
function InsertSmiles(str){
ImagePath="<img src=\"/images/smiles/";
str=str.replace(/0\:\-\)/g,ImagePath+"aa.gif\" alt=\"0:-)\" title=\"0:-)\" />");
str=str.replace(/8\)/g,ImagePath+"ai.gif\" alt=\"8)\" title=\"8)\" />");
str=str.replace(/\:\)/g,ImagePath+"ab.gif\" alt=\":)\" title=\":)\" />");
str=str.replace(/\:\(/g,ImagePath+"ac.gif\" alt=\":(\" title=\":(\" />");
str=str.replace(/\;\)/g,ImagePath+"ad.gif\" alt=\";)\" title=\";)\" />");
str=str.replace(/\:P/g,ImagePath+"ae.gif\" alt=\":P\" title=\":P\" />");
str=str.replace(/\:D/g,ImagePath+"ag.gif\" alt=\":D\" title=\":D\" />");
str=str.replace(/\:\-\[/g,ImagePath+"ah.gif\" alt=\":-[\" title=\":-[\" />");
str=str.replace(/\:\`\(/g,ImagePath+"ak.gif\" alt=\":`(\" title=\":`(\" />");
str=str.replace(/\:\-X/g,ImagePath+"al.gif\" alt=\":-X\" title=\":-X\" />");
str=str.replace(/\:\|/g,ImagePath+"an.gif\" alt=\":|\" title=\":|\" />");
str=str.replace(/\:\-\//g,ImagePath+"ao.gif\" alt=\":-/\" title=\":-/\" />");
str=str.replace(/]\:\>\;/g,ImagePath+"aq.gif\" alt=\"]:>\" title=\"]:>\" />");
str=str.replace(/\*KISSED\*/g,ImagePath+"as.gif\" alt=\"*KISSED*\" title=\"*KISSED*\" />");
str=str.replace(/\*KISSING\*/g,ImagePath+"aw.gif\" alt=\"*KISSING*\" title=\"*KISSING*\" />");
str=str.replace(/\?\?\?/g,ImagePath+"huh.gif\" alt=\"???\" title=\"???\" />");
str=str.replace(/\@\}\-\>\;\-\-/g,ImagePath+"ax.gif\" alt=\"@}->--\" title=\"@}->--\" />");
str=str.replace(/\*THUMBS UP\*/g,ImagePath+"ay.gif\" alt=\"*THUMBS UP*\" title=\"*THUMBS UP*\" />");
str=str.replace(/\*DRINK\*/g,ImagePath+"az.gif\" alt=\"*DRINK*\" title=\"*DRINK*\" />");
str=str.replace(/\%\)/g,ImagePath+"be.gif\" alt=\"%)\" title=\"%)\" />");
str=str.replace(/\*HELP\*/g,ImagePath+"bc.gif\" alt=\"*HELP*\" title=\"*HELP*\" />");
str=str.replace(/\*SOS\*/g,ImagePath+"bc.gif\" alt=\"*HELP*\" title=\"*HELP*\" />");
str=str.replace(/\*ROFL\*/g,ImagePath+"bj.gif\" alt=\"*ROFL*\" title=\"*ROFL*\" />");
str=str.replace(/\*YAHOO\*/g,ImagePath+"bp.gif\" alt=\"*YAHOO*\" title=\"*YAHOO*\" />");
str=str.replace(/\*BYE\*/g,ImagePath+"bs.gif\" alt=\"*BYE*\" title=\"*BYE*\" />");
str=str.replace(/\*HI\!\*/g,ImagePath+"bt.gif\" alt=\"*HI!*\" title=\"*HI!*\" />");
str=str.replace(/\*KILL ALL\*/g,ImagePath+"fb.gif\" alt=\"*KILL ALL*\" title=\"*KILL ALL*\" />");
str=str.replace(/\*SUICIDE1\*/g,ImagePath+"fo.gif\" alt=\"*SUICIDE1*\" title=\"*SUICIDE1*\" />");
str=str.replace(/\*SUICIDE2\*/g,ImagePath+"ga.gif\" alt=\"*SUICIDE2*\" title=\"*SUICIDE2*\" />");
str=str.replace(/\*NOSPAM\*/g,ImagePath+"gj.gif\" alt=\"*NOSPAM*\" title=\"*NOSPAM*\" />");
str=str.replace(/\*LAW\*/g,ImagePath+"hm.gif\" alt=\"*LAW*\" title=\"*LAW*\" />");
str=str.replace(/\*WALL\*/g,ImagePath+"bu.gif\" alt=\"*WALL*\" title=\"*WALL*\" />");
//censor
str=str.replace(/бзд|хуй|хуе|хуё|пизд|ебан|наеб|наёб|ёбан|херн|херо|бля|ебат|уебо|уёбо|пидор|сука|сучар|сучка|сучек| сучёк|сучок|педри|пизд|fuck/gi,"###");
str=str.replace(/БЗД|ХУЙ|ХУЕ|ХУЁ|ПИЗД|ЕБАН|НАЕБ|НАЁБ|ЁБАН|ХЕРН|ХЕРО|БЛЯ|ЕБАТ|УЕБО|УЁБО|ПИДОР|СУКА|СУЧАР|СУЧКА|СУЧЕК| СУЧЁК|СУЧОК|ПЕДРИ|ПИЗД|FUCK/gi,"###");
str=str.replace(/бзд|хуй|хуе|хуё|пизд|ебан|наеб|наёб|ёбан|херн|херо|бля|ебат|уебо|уёбо|пидор|суки|сучар|сучка|сучек| сучёк|сучок|педри|пизд|fuck/gi,"###");
str=str.replace(/БЗД|ХУЙ|ХУЕ|ХУЁ|ПИЗД|ЕБАН|НАЕБ|НАЁБ|ЁБАН|ХЕРН|ХЕРО|БЛЯ|ЕБАТ|УЕБО|УЁБО|ПИДОР|СУКИ|СУЧАР|СУЧКА|СУЧЕК| СУЧЁК|СУЧОК|ПЕДРИ|ПИЗД|FUCK/gi,"###");
return str;
}
Спустя 4 минуты, 24 секунды (14.04.2012 - 16:57) bodja написал(а):
Застрелится можно
Да идея оказалась не новой ,но зато какое название придумал
Ок ,дополню.
ВВкоды
Да идея оказалась не новой ,но зато какое название придумал
Ок ,дополню.
ВВкоды
Цитата |
function bbReplace(id) { var str=document.getElementById(id).innerHTML; str=str.replace(/\[b\]/g,'<span style="font-weight:bold">'); str=str.replace(/\[\/b\]/g,'</span>'); str=str.replace(/\[i\]/g,'<span style="font-style:italic">'); str=str.replace(/\[\/i\]/g,'</span>'); str=str.replace(/\[d\]/g,'<span style="text-decoration:line-through">'); str=str.replace(/\[\/d\]/g,'</span>'); str=str.replace(/\[h3\]/g,'<span style="font-size:24px">'); str=str.replace(/\[\/h3\]/g,'</span>'); str=str.replace(/\[h6\]/g,'<span style="font-size:8px">'); str=str.replace(/\[\/h6\]/g,'</span>'); str=str.replace(/\[red\]/g,'<span style="color:red">'); str=str.replace(/\[\/red\]/g,'</span>'); str=str.replace(/\[green\]/g,'<span style="color:green">'); str=str.replace(/\[\/green\]/g,'</span>'); str=str.replace(/\[blue\]/g,'<span style="color:blue">'); str=str.replace(/\[\/blue\]/g,'</span>'); document.getElementById(id).innerHTML=str; } |
Ну и т.д.
Спустя 33 минуты, 57 секунд (14.04.2012 - 17:31) Winston написал(а):
Цитата (bodja @ 14.04.2012 - 16:45) |
str=str.replace(/\:\)/g,'<img src="./images/1.gif"/>'); str=str.replace(/\:\|/g,'<img src="./images/2.gif"/>'); str=str.replace(/\;\)/g,'<img src="./images/3.gif"/>'); str=str.replace(/\:D/g,'<img src="./images/4.gif"/>'); str=str.replace(/o_O/g,'<img src="./images/5.gif"/>'); str=str.replace(/\:\(/g,'<img src="./images/6.gif"/>'); |
А в PHP хватило бы одного strtr()
Спустя 3 часа, 7 минут, 35 секунд (14.04.2012 - 20:39) Zerstoren написал(а):
Цитата (Winston @ 14.04.2012 - 14:31) | ||
А в PHP хватило бы одного strtr() |
Вы не видели мою функцию транслитерации на JS, вот там!
Ужс.
Хотя писал я ее близко года назад, но более лучшего решения все равно не нашел.
Спустя 3 часа, 17 минут, 28 секунд (14.04.2012 - 23:56) FatCat написал(а):
Цитата (bodja @ 14.04.2012 - 17:45) |
str=str.replace(/\:\)/g,'<img src="./images/1.gif"/>'); |
Джаваскриптовой replace отличается от php-шного str_replace тем, что обрабатывает только одно вхождение подстроки.
Я предпочитаю делать так:
str=str.split(':)').join('<img src="./images/1.gif"/>');
Спустя 6 минут, 6 секунд (15.04.2012 - 00:02) FatCat написал(а):
Цитата (Zerstoren @ 14.04.2012 - 21:39) |
Вы не видели мою функцию транслитерации на JS, вот там! Ужс. |
Ага. Вот моя:
js
code = code.split('X').join('КС').split('JE').join('Е').split('Je').join('Е').split('JO').join('Ё').split('Jo').join('Ё').split('ZH').join('Ж').split('Zh').join('Ж').split('CH').join('Ч').split('Ch').join('Ч').split('Sh').join('Ш').split('SH').join('Ш').split('JU').join('Ю').split('Ju').join('Ю').split('JA').join('Я').split('Ja').join('Я').split('A').join('А').split('B').join('Б').split('V').join('В').split('G').join('Г').split('D').join('Д').split('Z').join('З').split('I').join('И').split('J').join('Й').split('K').join('К').split('L').join('Л').split('M').join('М').split('N').join('Н').split('O').join('О').split('P').join('П').split('R').join('Р').split('S').join('С').split('T').join('Т').split('U').join('У').split('F').join('Ф').split('H').join('Х').split('C').join('Ц').split('W').join('Щ').split('#').join('Ъ').split('Y').join('Ы').split("'").join('Ь').split('E').join('Е');
code = code.split('x').join('кс').split('je').join('е').split('jo').join('ё').split('zh').join('ж').split('ch').join('ч').split('sh').join('ш').split('ju').join('ю').split('ja').join('я').split('a').join('а').split('b').join('б').split('v').join('в').split('g').join('г').split('d').join('д').split('z').join('з').split('i').join('и').split('j').join('й').split('k').join('к').split('l').join('л').split('m').join('м').split('n').join('н').split('o').join('о').split('p').join('п').split('r').join('р').split('s').join('с').split('t').join('т').split('u').join('у').split('f').join('ф').split('h').join('х').split('c').join('ц').split('w').join('щ').split('#').join('ъ').split('y').join('ы').split("'").join('ь').split('e').join('е');
Спустя 25 минут, 52 секунды (15.04.2012 - 00:28) bodja написал(а):
Цитата |
Джаваскриптовой replace отличается от php-шного str_replace тем, что обрабатывает только одно вхождение подстроки. |
обратите внимание на
/\;\)/g
а вот то,что не хавает массивы - ето есть плохо.
Спустя 19 часов, 18 минут, 5 секунд (15.04.2012 - 19:46) Zerstoren написал(а):
Цитата (FatCat @ 14.04.2012 - 20:56) | ||
Джаваскриптовой replace отличается от php-шного str_replace тем, что обрабатывает только одно вхождение подстроки. Я предпочитаю делать так: str=str.split(':)').join('<img src="./images/1.gif"/>'); |
ВЫ не правы.
Выполните такой код в консоли браузера
'some string text'.replace(/ /g,'-') //(в хроме сразу будете выведен результат)
Спустя 5 часов, 47 минут, 50 секунд (16.04.2012 - 01:34) FatCat написал(а):
Понял, тут регулярка.
Когда я учил джаваскрипт, регулярок еще в нем не было. Писал еще под IE/NN 4.0
Когда я учил джаваскрипт, регулярок еще в нем не было. Писал еще под IE/NN 4.0
Спустя 13 часов, 46 минут (16.04.2012 - 15:20) Zerstoren написал(а):
Цитата (FatCat @ 15.04.2012 - 22:34) |
Понял, тут регулярка. Когда я учил джаваскрипт, регулярок еще в нем не было. Писал еще под IE/NN 4.0 |
Тут даже не соль в регулярке, а в флаге g, который говорит заменить, пока есть вхождения.