Ist \n
die universelle Newline-Zeichenfolge in Javascript für alle Plattformen? Wenn nicht, wie bestimme ich den Charakter für die aktuelle Umgebung?
Ich frage nicht nach dem HTML-Zeilenumbruchelement ( <BR/>
). Ich frage nach der Zeilenumbruchzeichenfolge, die in JavaScript-Zeichenfolgen verwendet wird.
javascript
newline
Landon Kuhn
quelle
quelle
getValue
Funktion, die dasvalue
und das zurückgibtvalue.replace(/\r\n/g,'\n')
- nur um die Ausgabe über Browser / Plattformen hinweg konsistent zu halten.Antworten:
Ich habe gerade ein paar Browser mit diesem albernen Stück JavaScript getestet:
IE8 und Opera 9 unter Windows verwenden
\r\n
. Alle anderen von mir getesteten Browser (Safari 4 und Firefox 3.5 unter Windows und Firefox 3.0 unter Linux) verwenden\n
. Sie können alle\n
gut mit dem Einstellen des Werts umgehen , obwohl IE und Opera dies\r\n
intern wieder in konvertieren . Es gibt einen SitePoint-Artikel mit einigen weiteren Details, die als Zeilenenden in Javascript bezeichnet werden .Beachten Sie auch, dass dies unabhängig von den tatsächlichen Zeilenenden in der HTML-Datei selbst ist (beide
\n
und\r\n
die gleichen Ergebnisse liefern).Beim Senden eines Formulars können alle Browser Zeilenumbrüche
%0D%0A
in der URL-Codierung kanonisieren . Um dies zu sehen, laden Sie zBdata:text/html,<form><textarea name="foo">foo%0abar</textarea><input type="submit"></form>
und drücken Sie die Senden-Taste. (Einige Browser blockieren das Laden der übermittelten Seite, aber Sie können die URL-codierten Formularwerte in der Konsole sehen.)Ich glaube jedoch nicht, dass Sie wirklich viel bestimmen müssen. Wenn Sie den Text nur in Zeilenumbrüche aufteilen möchten, können Sie Folgendes tun:
quelle
\r\n
als zwei Zeilenumbrüche statt als eine behandelt wird. Wenn Sie kurz wollen,/\r?\n/g
wird wahrscheinlich tun (wer verwendet noch Mac OS 9 überhaupt?).Ja, es ist universell.
Obwohl
'\n'
es sich um universelle Zeilenumbrüche handelt , müssen Sie berücksichtigen, dass neuen Zeilenzeichen abhängig von Ihrer Eingabe möglicherweise Wagenrücklaufzeichen ('\r'
) vorangestellt werden .quelle
Verwenden Sie nicht "\ n". Versuchen Sie einfach Folgendes:
Geben Sie einfach einen Schrägstrich ein und fahren Sie weiter! Klappt wunderbar.
quelle
tilde
Zeichen (auch als Backtick bezeichnet).~
Tilde vs`
Backtick .Es ist möglicherweise am einfachsten, alle Fälle des neuen Zeilenzeichens zu behandeln, anstatt zu prüfen, welcher Fall dann angewendet wird. Wenn Sie beispielsweise die neue Zeile ersetzen müssen, gehen Sie wie folgt vor:
quelle
Ja, verwenden Sie \ n, es sei denn, Sie generieren HTML-Code, in dem Sie verwenden möchten
<br />
quelle
E-Mail-Link-Funktion Ich benutze "% 0D% 0A"
[HTML]
quelle
Holen Sie sich ein Zeilentrennzeichen für den aktuellen Browser:
quelle
return textarea.value;
?JSON.stringify
des Ergebnisses den Charakter ändern? Wenn ich versuche, das Ergebnis in einemalert()
Aufruf anzuzeigen, wird mir das Zeichen nur angezeigt, wenn ich es zuerst stringiere (natürlich muss das Zeichen nicht lesbar sein, um effektiv zu sein)Hinweis: Bei Verwendung von ExtendScript JavaScript (der in Anwendungen wie Photoshop CS3 + verwendeten Adobe Scripting-Sprache) lautet das zu verwendende Zeichen "\ r". "\ n" wird als Schriftzeichen interpretiert, und viele Schriftarten haben stattdessen ein Blockzeichen.
Zum Beispiel (um eine Ebene mit dem Namen "Notiz" auszuwählen und nach allen Zeiträumen Zeilenvorschübe hinzuzufügen):
quelle
\n
und habe<br/>
in meinem Photoshop-Skript nicht funktioniert ... Danke!Sie können mit ES6 `` Anführungszeichen (die sich unter der Esc-Taste befinden) verwenden. Sie können also so etwas schreiben:
quelle
Ich glaube schon - wenn Sie mit JS-Strings arbeiten.
Wenn Sie jedoch HTML generieren, müssen Sie
<br />
Tags verwenden (nicht\n
, da Sie sich nicht mehr mit JS beschäftigen).quelle
Ich hatte das Problem, Zeilenumbrüche mit \ n oder \ r \ n auszudrücken . Magischerweise funktionierte
das Zeichen \ r, das für den Wagenrücklauf verwendet wird, für mich wie eine neue Zeile.
In einigen Fällen ist es daher nützlich, auch \ r zu berücksichtigen.
quelle
Drucke:
quelle
Eine praktische Beobachtung ... In meinem NodeJS-Skript habe ich folgende Funktion:
Zuerst hatte ich nur "\ n", aber ich bemerkte, dass beim Öffnen der Protokolldatei im Editor alle Einträge in derselben Zeile angezeigt werden. Notepad ++ hingegen zeigt die Einträge jeweils in einer eigenen Zeile. Nachdem Sie den Code in "\ r \ n" geändert haben, zeigt sogar Notepad jeden Eintrag in einer eigenen Zeile an.
quelle
Das
\n
ist in Ordnung für alle Fälle, denen ich begegnet bin.\n
Wenn Sie mit dem Web arbeiten, verwenden Sie es und sorgen Sie sich nicht darum (es sei denn, Sie hatten Probleme mit Zeilenumbrüchen).quelle
Sie können verwenden
<br/>
und diedocument.write/
,document.writeln
eine.quelle
<br>