Да, я знаю, что такое синтаксический анализ. И знаю много разных библиотек для подсветки чего угодно. Только это всё не то, когда надо подсветить простенький примерчик, не содержащий всяких кодоизвращений. И уж совсем негоже тянуть для этого много-много байт _правильно_ разбирающих _любой_ код.
Для случаев без кодоизврата (а их большинство) можно использовать такой код:
Для случаев без кодоизврата (а их большинство) можно использовать такой код:
code = code // ключевые слова (список неполон, написал, что в голову пришло) .replace(/(var|function|typeof|new|return|if|for|in|while|break|do|continue|switch|case)([^a-z0-9\$_])/gi, '<span class="kwrd">$1</span>$2') // всякие скобочки .replace(/(\{|\}|\]|\[|\|)/gi,'<span class="kwrd">$1</span>') // однострочные комментарии .replace(/(\/\/[^\n\r]*(\n|\r\n))/g,'<span class="comm">$1</span>') // строки .replace(/('.*?')/g,'<span class="str">$1</span>') // функции (когда после идентификатора идет скобка) .replace(/([a-z\_\$][a-z0-9_]*)\(/gi,'<span class="func">$1</span>(') // не люблю восьмизначные табы, пусть лучше будет 4 пробела .replace(/\t/g,' ');