Code WTF: JavaScript HTML entities
Рубрика: JavaScript/Ajax, Юмор | 2 July 2009, 10:49 |
Vadim Voituk
Извините за “неформат” для данного блога, но не смог удержаться.
Вот так вот мой “юннат” реализует замену html-entities на JavaScript:
function properHtmlFromText(text){
while (text.search(/\</) != -1)
text = text.replace(/\</, '<');
while (text.search(/\&/) != -1)
text = text.replace(/\&/, '&');
while (text.search(/\r/) != -1)
text = text.replace(/\r/, '');
while (text.search(/\n/) != -1)
text = text.replace(/\n/, '<br />');
return text;
}
Как увидел – плакал…
Наверное все-таки будем возобновлять ежедневные code-review…
P.S. В комментариях предлагаю поделиться “правильным” решением :)
Tweet
Думаю, так будет проще:
Это типа шутка такая? Зачем содавать обьект textarea?
Извиняюсь, не досмотрел. И, вправду, незачем так извращаться. Нужно:
‘<supatag/>&<supatag/>&’.replace(/&/g,’&’).replace(/>/g,’>’).replace(/</g,’<’).replace(/”/g,’"’);
Сразу предупреждаю, я совсем совсем сервер сайд программист ;-)
Угу, именно так :)
Походу все равно парсер коментов эскейп символы разэскейпчивает..
Попробуэм напистаь программу которая выводит себя сама. Итак новая попыткса справится с редактором коментариев:
‘<supatag/>&<supatag/>&’.replace(/&/g,’&’).replace(/>/g,’>’).replace(/</g,’<’).replace(/"/g,’"’);
Рвение к совершенству не дает отступить на пол пути:
<supatag/>&<supatag/>&’.replace(/&/g,’&’).replace(/>/g,’>’).replace(/</g,’<’).replace(/"/g,’"’);
Юннат говоришь, я вот код битрикса читаю и плачу.
do{ //one iteration loop
тут полтыщи строк кода
}while (false);
Juriy
А чем сакральный смысл такого? Остатки от рефакторингов?
Вот что еще паз подтверждает что битрикс такие же юннаты пишут. :)
Продают, правда, совсем не юннаты.
OT: а що з RSS? останній пост про Groovy :(
@panshdw
Спасибо – пофиксил.
Я тоже встречал do {} while (false); в коде одного нашего индуса. Он говорит что всегда так пишет. А использует для того, что бы можно было break’ом выйти из этого блока.
Я, в действительности, тоже так подумал, что эта конструкция нужна только для break’a.
мой ответ
http://mabp.kiev.ua/2009/07/06/code-wtf-javascript-html-entities/
решил с парсером не воевать как crypto5
В условии есть проверка на открытие тега, а где на закрытие?
ну это же “юннат” писал он обычно теги не закрывает :D