Мне нужно что-то вроде heredoc в JavaScript. У вас есть идеи по этому поводу? Мне нужна кросс-браузерная функциональность.
Я нашел это:
heredoc = '\
<div>\
<ul>\
<li><a href="#zzz">zzz</a></li>\
</ul>\
</div>';
Думаю, у меня это сработает. :)
javascript
heredoc
ВероЛом
источник
источник
Ответы:
Попробуйте шаблон строки ES6 , вы можете сделать что-то вроде
Вы можете использовать эту замечательную функцию сегодня с 6to5 или TypeScript.
источник
Нет, к сожалению, JavaScript не поддерживает ничего подобного heredoc.
источник
Как насчет этого:
Просто замените "/ * ЗДЕСЬ" и "ЗДЕСЬ * /" выбранным словом.
источник
*/
в вашем heredoc есть заключительный комментарий .Основываясь на ответе Zv_oDD, я создал аналогичную функцию для упрощения повторного использования.
Предупреждение: это нестандартная функция многих интерпретаторов JS, и, вероятно, в какой-то момент она будет удалена, но поскольку я создаю сценарий, который будет использоваться только в Chrome, я использую его! Не когда - либо полагаться на это для сайтов клиентов-облицовочных!
Использование:
Возврат:
Ноты:
Редактирование:
02.02.2014 - изменено, чтобы вообще не связываться с прототипом функции и использовать вместо него имя heredoc.
26.05.2017 - обновлены пробелы, чтобы отразить современные стандарты кодирования.
источник
В зависимости от того, какой вид движка JS / JS вы используете (SpiderMonkey, AS3), вы можете просто написать встроенный XML, в котором вы можете разместить текст на нескольких строках, например heredoc:
источник
ES6 Template Strings имеет функцию heredoc.
Вы можете объявлять строки, заключенные в обратную галочку (``), и расширять их до нескольких строк.
Вы также можете включать выражения в строки шаблона. Они обозначены знаком доллара и фигурными скобками (
${expression}
).На самом деле в нем больше функций, таких как Tagged Temple Strings и Raw Strings. Пожалуйста, найдите документацию по адресу
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings
источник
Мне плохо писать отдельный ответ для простого расширения ответа @NateFerrero , но я не считаю, что редактирование его ответа также уместно, поэтому, пожалуйста, проголосуйте за @NateFerrero, если этот ответ был для вас полезен.
tl; dr - для тех, кто хочет использовать блочные комментарии внутри своего heredoc ...
В основном мне нужны heredocs Javascript для хранения блока CSS, например
Однако, как вы можете видеть, я люблю комментировать свой CSS, и, к сожалению (на что указывает выделение синтаксиса), первый
*/
завершает общий комментарий, нарушая heredoc.Для этой конкретной цели (CSS) я решил добавить
в цепочку внутри @ NateFerrero's
heredoc
; в полной форме:и используйте его, добавив пробел между
*
и/
для «внутренних» комментариев блока, например:replace
Просто находит/* ... * /
и удаляет пространство , чтобы сделать/* ... */
, тем самым сохраняя Heredoc до востребования.Конечно, вы можете полностью удалить комментарии, используя
Вы также можете поддержать
//
комментарии, если добавите их в цепочку:Кроме того, вы можете сделать что-то другое, кроме одного пробела между
*
и/
, например-
:если вы просто обновите регулярное выражение соответствующим образом:
Или, может быть, вам нужно произвольное количество пробелов вместо одного?
источник
Вы можете использовать CoffeeScript , язык, который компилируется до JavaScript. Код компилируется один к одному в эквивалентный JS, и во время выполнения нет интерпретации.
И, конечно же, есть heredocs :)
источник
ES5 и более ранние версии
ES6 и более поздние версии
результат
источник
Вы можете использовать макрос Sweet.js, чтобы добавить его так, как это создал Тим Дисней в этом посте.
Обратите внимание, что в этом подходе вместо разделителей строк используются обратные кавычки:
источник
Как уже говорили другие, строки шаблонов ES6 предоставляют вам большую часть того, что предоставляют традиционные heredocs.
Если вы хотите пойти дальше и использовать строку шаблона с тегами,
theredoc
это хорошая служебная функция, которая позволяет вам сделать это:источник
Если у вас под рукой есть html и jQuery, а строка является допустимым HTML, это может быть полезно:
Если между текстом есть комментарии «<! - ->», это тоже работает, но часть текста может быть видна. Вот скрипка: https://jsfiddle.net/hr6ar152/1/
источник
пример
с кешем: - сделать простую функцию шаблона и сохранить функцию: (второй раз работает быстро)
источник
Я публикую эту версию, так как она избегает использования регулярных выражений для чего-то столь тривиального.
Регулярное выражение IMHO - это обфускация, созданная разработчиками Perl в качестве розыгрыша. остальная часть сообщества восприняла их серьезно, и теперь мы платим цену, спустя десятилетия. не используйте регулярное выражение, за исключением обратной совместимости с устаревшим кодом. В наши дни нет оправдания написанию кода, который не сразу становится читаемым и понятным человеком. регулярное выражение нарушает этот принцип на всех уровнях.
Я также добавил способ добавить результат на текущую страницу, хотя этого не просили.
источник