<textarea cols='60' rows='8'>This is my statement one.\n This is my statement2</textarea>
<textarea cols='60' rows='8'>This is my statement one.<br/> This is my statement2</textarea>
Ich habe beides versucht, aber die neue Zeile wird beim Rendern der HTML-Datei nicht angezeigt. Wie kann ich das tun?
Versuchen Sie diesen:
<textarea cols='60' rows='8'>This is my statement one.
This is my statement2</textarea>
Line Feed und
Carriage Return sind HTML-Einheitenwikipedia.
Auf diese Weise parsen Sie tatsächlich die neue Zeile ("\n"), anstatt sie als Text anzuzeigen.
1:
<textarea cols='60' rows='8'>This is my statement one.
This is my statement2</textarea>
Fiddle zeigt, dass es funktioniert:
.Wenn Sie wirklich wollen, dass dies in einer einzigen Zeile in der Quelldatei geschieht, können Sie die HTML-Zeichenreferenzen für einen Zeilenvorschub und einen Wagenrücklauf einfügen, wie in der Antwort von @Bakudan gezeigt:
<textarea cols='60' rows='8'>This is my statement one.
This is my statement2</textarea>
I'ich fand String.fromCharCode(13, 10)
hilfreich bei der Verwendung von View Engines.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode
Dadurch wird eine Zeichenfolge mit den eigentlichen Zeilenvorschubzeichen erzeugt und die View Engine gezwungen, einen Zeilenvorschub statt einer Escape-Version auszugeben. Beispiel Verwendung der NodeJS EJS-View-Engine - Dies ist ein einfaches Beispiel, in dem jedes \n ersetzt werden sollte:
viewHelper.js
exports.replaceNewline = function(input) {
var newline = String.fromCharCode(13, 10);
return input.replaceAll('\\n', newline);
}
EJS
<textarea><%- viewHelper.replaceNewline("Blah\nblah\nblah") %></textarea>
Rendert
<textarea>Blah
blah
blah</textarea>
alle ersetzen:
String.prototype.replaceAll = function (find, replace) {
var result = this;
do {
var split = result.split(find);
result = split.join(replace);
} while (split.length > 1);
return result;
};
Ich glaube, Sie verwechseln die Syntax der verschiedenen Sprachen.
ist (der HtmlEncodierte Wert von ASCII 10 oder) das Linefeed-Zeichenliteral in einer HTML-Zeichenkette.
Aber das Zeilenvorschubzeichen wird in HTML NICHT als Zeilenumbruch dargestellt (siehe Anmerkungen unten).
\n
ist das Zeilenvorschub-Zeichenliteral (ASCII 10) in einer Javascript-Zeichenkette.
<br/>
ist ein Zeilenumbruch in HTML.
Viele andere Elemente, z.B. <p>
, <div>
, usw. stellen ebenfalls Zeilenumbrüche dar, es sei denn, sie werden mit einigen Stilen überschrieben.
Hoffentlich wird die folgende [Abbildung][1] es klarer machen:
T.innerText = "Position of LF: " + t.value.indexOf("\n");
p1.innerHTML = t.value;
p2.innerHTML = t.value.replace("\n", "<br/>");
p3.innerText = t.value.replace("\n", "<br/>");
<textarea id="t">Line 1
Line 2</textarea>
<p id='T'></p>
<p id='p1'></p>
<p id='p2'></p>
<p id='p3'></p>
Ein paar Anmerkungen zu Html:
innerHTML'-Wert des
TEXTAREA'-Elements rendert Html nicht.
Versuchen Sie Folgendes:
<textarea>A <a href='x'>link</a>.</textarea>
zu sehen.P
-Element stellt alle zusammenhängenden weißen Flächen (einschließlich neuer Linien) als eine Fläche dar.TEXTAREA
rendert LF als eine neue Zeile innerhalb des Textfeldes.[1]:
Versuchen Sie dies. Es funktioniert:
<textarea id="test" cols='60' rows='8'>This is my statement one.
This is my statement2</textarea>
ersetzt für
Tags:
$("textarea#test").val(replace($("textarea#test").val(), "<br>", "
")));
Um eine neue Zeile innerhalb des Textbereichs zu erhalten, setzen Sie dort einen tatsächlichen Zeilenumbruch:
<textarea cols='60' rows='8'>This is my statement one.
This is my statement2</textarea>
Brechen Sie die Eingabe der Schlüsselwortzeile in Textarea mit CSS ab:
white-space: pre-wrap;
Nach vielen Tests funktioniert folgender Code für mich in Typescreipt
export function ReplaceNewline(input: string) {
var newline = String.fromCharCode(13, 10);
return ReplaceAll(input, "<br>", newline.toString());
}
export function ReplaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
Meine .replace()
-Funktion unter Verwendung der Muster, die bei den anderen Antworten beschrieben wurden, funktionierte nicht.
Das Muster, das in meinem Fall funktionierte, war:
var str = "Test\n\n\Test\n\Test";
str.replace(/\r\n|\r|\n/g,'
');
// str: "Test
Test
Test"
T.innerText = "Position von LF: "Anführungszeichen
p3.innerText = t.value.replace("\n", "");
<textarea id="t">Line 1
Line 2</textarea>
<p id='p3'></p>
benutzen Sie einfach <br>
`
ex:
<textarea>
blablablabla <br> kakakakakak <br> fafafafafaf
</textarea>
Ergebnis:
blablablabla
kakakakakakak
kakakakakakak
fafafafafafaf