Строка символа строки строки JavaScript?

Является ли \n символьная последовательность универсальной новой строки в Javascript для всех платформ? Если нет, как определить символ для текущей среды?

Я не спрашиваю о элементе новой строки HTML (<BR/>). Я спрашиваю о последовательности символов новой строки, используемой в строках JavaScript.

Ответ 1

Я только что протестировал несколько браузеров, используя этот глупый бит JavaScript:

function log_newline(msg, test_value) {
  if (!test_value) { 
    test_value = document.getElementById('test').value;
  }
  console.log(msg + ': ' + (test_value.match(/\r/) ? 'CR' : '')
              + ' ' + (test_value.match(/\n/) ? 'LF' : ''));
}

log_newline('HTML source');
log_newline('JS string', "foo\nbar");
log_newline('JS template literal', `bar
baz`);
<textarea id="test" name="test">

</textarea>

Ответ 2

Да, он универсален.

Хотя '\n' является универсальным символом новой строки, вы должны иметь в виду, что в зависимости от вашего ввода новым строковым символам могут предшествовать символы возврата каретки ('\r').

Ответ 3

Не используйте "\n". Просто попробуйте это:

var string = "this\
is a multi\
line\
string";

Просто введите обратную косую черту и продолжайте движение! Работает как шарм.

Ответ 4

Проще всего просто обрабатывать все случаи нового символа линии, а не проверять, в каком случае применить его. Например, если вам нужно заменить новую строку, выполните следующие действия:

htmlstring = stringContainingNewLines.replace(/(\r\n|\n|\r)/gm, "<br>");

Ответ 5

yes use\n, если вы не генерируете html-код, в котором вы хотите использовать <br />

Ответ 6

Функция ссылки по электронной почте я использует "% 0D% 0A"

function sendMail() {   
var bodydata="Before "+ "%0D%0A";
    bodydata+="After"

var MailMSG = "mailto:[email protected]" 
         + "[email protected]" 
         + "&subject=subject" 
         + "&body=" + bodydata; 
window.location.href = MailMSG; 
} 

[HTML]

<a href="#" onClick="sendMail()">Contact Us</a>

Ответ 7

Получить разделитель строк для текущего браузера:

function getLineSeparator() {
  var textarea = document.createElement("textarea");
  textarea.value = "\n"; 
  return textarea.value;
}

Ответ 8

Примечание. При использовании ExtendScript JavaScript (язык Adobe Scripting, используемый в таких приложениях, как Photoshop CS3 +), используемым символом является "\ r". "\n" будет интерпретироваться как символ шрифта, и поэтому многие шрифты будут иметь вместо этого блок-символ.

Например (для выбора слоя с именем "Примечание" и добавления строк через все периоды):

var layerText = app.activeDocument.artLayers.getByName('Note').textItem.contents;
layerText = layerText.replace(/\. /g,".\r");

Ответ 9

В ответе Nilay выше (я не могу комментировать, недостаточно репутации):

кто-нибудь знает этот тип кода для ключа табуляции? я пробовал "% 0D% 09", но не работает. - Nilay Сен 26 '15 в 13:57

Вкладка - один символ, поэтому, если вы попробуете просто % 09, все должно быть хорошо. Пример для просмотра отдельных кодов символов:

var output = "";
var s="aaa\tbbb\tccc";
for (var i = 0; i < s.length; i++) {
  output += "i=" + i + " charAt=" + s.charAt(i) + " charCodeAt=" + s.charCodeAt(i) + "\n";
}

console.log(output);

Ответ 10

У меня возникла проблема выражения новой строки с помощью \n или \r\n.
Магически символ \r, который используется для возврата каретки, работал у меня как новая строка.
Поэтому в некоторых случаях полезно также рассмотреть\r.

Ответ 11

Вы можете использовать `` кавычки (которые находятся ниже кнопки Esc) с ES6. Поэтому вы можете написать что-то вроде этого:

var text = `fjskdfjslfjsl
skfjslfkjsldfjslfjs
jfsfkjslfsljs`;

Ответ 12

Я считаю, что это - когда вы работаете со строками JS.

Если вы создаете HTML, вам придется использовать теги <br /> (а не \n, поскольку вы больше не имеете дело с JS)

Ответ 13

printAccountSummary: function()
        {return "Welcome!" + "\n" + "Your balance is currently $1000 and your interest rate is 1%."}
};
console.log(savingsAccount.printAccountSummary()); // method

Печать:

Welcome!
Your balance is currently $1000 and your interest rate is 1%.

Ответ 14

Практическое наблюдение... В моем скрипте NodeJS у меня есть следующая функция:

function writeToLogFile (message) {
    fs.appendFile('myserverlog.txt', Date() + " " + message + "\r\n", function (err) {
        if (err) throw err;
    });
}

Сначала у меня было только "\n", но я заметил, что когда я открываю файл журнала в Блокноте, он показывает все записи в одной строке. Notepad++, с другой стороны, показывает записи, каждая из которых находится в отдельной строке. После изменения кода на "\ r\n" даже Блокнот показывает каждую запись в отдельной строке.

Ответ 15

\n отлично подходит для всех случаев, с которыми я столкнулся. Я работаю с сетью, использую \n и не волнуюсь об этом (если у вас не было проблем с новой строкой).

Ответ 16

вы можете использовать <br/> и document.write/, document.writeln один.