5

Многострочные строки в JavaScript

Возникает проблема с поиском информации по этому вопросу. Какой-то каламбуристый каламбур получается. И не ясно что искать в поисковике. Что такое многострочные строки? Это такие переменные типа string в JavaScript, которые разнесены на несколько строк. Как в php, например:

echo <<<END
здесь строка
на несколько строк
END;

или в C#:

string myStr = @"This is a C#
multiline string";

Иногда возникает необходимость изобразить нечно подобное в JS. Зачем это нужно, решайте сами. Но, на мой взгляд, это очень нужная фишка. И иногда без нее просто никак нельзя. Вот как это делается в JavaScript:

var factorial = new Function('n', '\
var result = 1;            \
for (var i=1; i&lt;=n; i++)   \
result *= i;             \
return result;             \');
alert(factorial(5)); // alerts 120

Это работает во всех браузерах. Единственное, нужно помнить, что такая запись не добавляет символ новой строки ‘\n’, в отличие от C#. То есть:

alert('foobar' == 'foo bar'); // false
alert('foobar' == 'foobar');  // true
alert('foobar' == 'foo\
bar');                        // true!

Если нужен символ новой строки, то подходит вот такая запись:

var myStr = 'line one\n\
line two';

Источник: Multiline strings in JavaScript.

5 Comments

  1. Спасибо, выручил! Как в Шарпе делается знал, а вот js не сталкивался до этого.

  2. Спасибо. Это удобно, когда делаешь одинаковое меню для всех страниц сайта
    function mymenu(){
    return ‘\
    Главная\
    \
    О компании\
    \
    История\
    Новости\
    Состав\
    \
    \
    \
    Наши продукты\
    \
    Колбаса\
    Мороженое\
    Арбузы\
    Апельсины\
    Мучные изделия\
    \
    \
    Контактная информация\
    \
    ‘;
    }
    а в html только вставляешь
    document.write(mymenu())

  3. Большое спасибо, пригодилось. Странно, что такой неудобный метод и к тому же найти его оказалось нелегко.

  4. Премного благодарен.
    Честно сказать — не знал как такое реализуется. Делал через жопу с невидимым контейнером))) Рад что хоть какой-нибудь способ существует. Весьма и весьма рад.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *