Code WTF: JavaScript HTML entities

Увидел у Вадима Войтюка в блоге задачку и задело. Это ж делается в одну строку! Ну максимум в две. 10 десять минут дела и один профтык с функцией escape() и все готово.

В общем вот что получилось:


var text = "'s<d\"f>g'q".replace(new RegExp("['\"<>\&]", 'g'), function(s) {
	return {'<':'&lt;','>':'&gt;','&':'&amp;','"':'&quot;','\'':'&#039;'}[s]; 
});
alert(text); // &#039;s&lt;d&quot;f&gt;g&#039;q

А запостил тут, потому что воевать с парсером каментов у него в блоге мне лень.

7 Комментарии “Code WTF: JavaScript HTML entities

  1. @Chikey
    ты вообще оригинал читал? все методы (search,replace,test) используют регулярные выражения. У меня оно всего одно а в первоначальном коде на каждый символ по два!

  2. Скорость в большинстве случаев не критична. Я для небольших проектов о скорости особенно не задумываюсь.

  3. конечно, если страница грузится 3 минуты, то после этого уже не критично как быстро символы заменятся ;)

  4. Это да :-)
    Главное чтобы потом еще сюрпризы не выдавало.
    Еще и 3 минуты ждать придется, пока мышка до крестика доедет, браузер закрыть

  5. в нормальных браузерах предусмотрена защит от долго выполняющихся скриптов

Комментарии закрыты