Строка символа строки строки 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
один.