Есть ли способ распечатать (используя console.info) строки шаблона javascript, применяя замены, если это так, но учитывая разрывы строк '\ n' при печати?
Например, когда у меня есть следующее:
let someVar = 'a';
let tsString = `here goes ${someVar}
some other line
some other line`;
console.info(tsString);Я бы хотел, чтобы он печатал С разрывами строк, а не печатал \ n вместо этого.
Я думаю, что между строками шаблона и обычными строками могло быть какое-то преобразование, но я не смог его найти.
*** Обновлено: это происходит в терминале, а не в браузере. Запуск приложения NodeJS. Извините за то, что не указали это, я предположил, что то, что я хотел, будет специфичным для JS, а не для узла (по крайней мере, решение).
Из-за того, как строки анализируются синтаксическими анализаторами HTML, все ненужные пробелы удаляются (что означает разрывы строк). Это просто раздражает консоль?
@RandyCasburn Поскольку вопрос конкретно относится к console.info, это не должно быть проблемой.
@ H.B. - Я понимаю, но никогда не знаешь. Если это раздражает консоль, то даже быть здесь - пустая трата времени. Но если это непонимание между тем, что отображается в представлении HTML, и тем, что отображается в консоли, возможно, мы сможем помочь. Есть смысл?
@RandyCasburn: Да. Интересно, какой браузер используется ...
Может быть, дело в браузере, но в Safari это 3 строчки. И если \ n помещены в строку, она затем печатается в 3 строках без отображения \ n.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Другое решение помимо добавления к строке \n, которое является стандартным решением, выглядит следующим образом:
У вас есть символ для новой строки:
(Я не могу вставить этот символ сюда, так как уценка убивает его)
Вы можете записать его в переменную и вставить в строку шаблона:
const newline = tsString[12];
const myString = `Hello ${newline} World!`;
Надеюсь, поможет.
Я думаю, это может быть связано с используемой вами ОС, так как Windows и Mac имеют разную длину символов для окончания строк.
Чтобы ответить на конкретный вопрос, который, кажется, работает для меня.
const os = require('os');
let someVar = 'a';
let tsString = `here goes ${someVar} ${os.EOL} some other line ${os.EOL} some other line`;
console.info(tsString);
Вы можете прочитать о промежуточном программном обеспечении os в документации nodejs здесь: https://nodejs.org/api/os.html#os_os_eol
Это похоже на аналогичный дубликат: Как создать разрыв строки в строке JavaScript для передачи в NodeJS для записи в текстовый файл?
Вам следует попробовать заменить EOL в зависимости от того, где вы берете контент, формы в качестве стандарта должны поддерживать CRLF \r\n в соответствии со спецификацией (https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4)
Используйте следующее регулярное выражение, чтобы заменить все вхождения. \n будет соответствовать EOL, а /gm будет соответствовать всем
let someVar = 'a';
let tsString = `here goes ${someVar}
some other line
some other line`;
//For terminal (detects EOL on it's own)
console.info(tsString);
let txtString = tsString.replace(/\n/gm, `\r\n`);
// Works in terminal and in textarea
console.info(txtString);
//For html content, redundant but if it's just html you want!
let htmlString = tsString.replace(/\n/gm, `<br>`);
console.info(htmlString);Вы можете вставить данные внутри строки, например
const myTemplateString = My sample text 1 is ${one}
My second line 2 is ${two}
console.info(myTemplateString)ES6 сохранит пробелы, и, следовательно, вы можете получить необходимые разрывы строк.
сослаться на эту статью
В моей консоли нет
\n, или вы хотите\n?