Wie Ersetze ich alle Zeilenumbrüche in einen string mit <br /> - tags?
Wie kann ich Lesen Sie den Zeilenumbruch von einem Wert, der mit Javascript und ersetzen alle Zeilenumbrüche mit br
tags?
Beispiel:
Einer Variablen übergeben von PHP wie folgt:
"This is man.
Man like dog.
Man like to drink.
Man is the king."
Ich würde wie mein Ergebnis Aussehen nach Javascript konvertiert:
"This is man<br /><br />Man like dog.<br />Man like to drink.<br /><br />Man is the king."
Etwas falsch mit Ihrer ursprünglichen Frage? stackoverflow.com/questions/784313/...
Sie könnte auch tun, nl2br($string) in PHP vor dem senden Sie es an JavaScript.
Ich Stimme zu schließen, die Vorherige Frage, denn dieser hat ein besseres Beispiel.
Er sollte Bearbeiten Sie die erste Frage dann
Sie könnte auch tun, nl2br($string) in PHP vor dem senden Sie es an JavaScript.
Ich Stimme zu schließen, die Vorherige Frage, denn dieser hat ein besseres Beispiel.
Er sollte Bearbeiten Sie die erste Frage dann
InformationsquelleAutor Jin Yong | 2009-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden alle wieder in den HTML -
Falls Sie sich Fragen, was ?: bedeutet.
Es wird als non-capturing-group. Es bedeutet, dass die Gruppe von regex innerhalb der Klammern werden nicht gespeichert im Speicher referenziert werden, später.
Sie können sich diese threads für mehr Informationen:
https://stackoverflow.com/a/11530881/5042169
https://stackoverflow.com/a/36524555/5042169
str.replace("\n", '<br />')
(erste argument ist ein regulärer Ausdruck) ersetzt nur das erste vorkommen.Eine andere version (zu ersetzen, die mehrere Zeilenumbrüche): str.replace(/(\n)+/g, '<br />');
Danke für den extra Kommentar. Nur mich gerettet eine TONNE Zeit! jsfiddle
zwingt das erste argument von
String
auf ein entkommenRegExp
Instanz, ohne Fahnen.str.replace('\n', '<br />');
entsprichtstr.replace(new RegExp('\n'), '<br />');
ist nicht korrekt. Einige andere Systeme verwenden
\r
allein. Ich werde zu aktualisieren, für alle Fälle.InformationsquelleAutor eyelidlessness
Wenn Ihr Anliegen ist, nur die Anzeige Zeilenumbrüche, könnte man das auch mit CSS machen.
HTML
CSS
jsfiddle
https://jsfiddle.net/yk1angkz/125/
Hinweis: achten Sie auf die code-Formatierung und Einrückungen, da
white-space: pre-wrap
zeigt alle Leerzeichen (mit Ausnahme der letzten Zeilenumbruch nach dem text, siehe fiddle).Ich kam hierher auf der Suche nach einer regex und verließ mit dieser. In vielen Gelegenheiten ist dies, was die Menschen suchen. Wir verwenden Sie Zeilenumbrüche für E-Mails und anzeigen müssen, was die E-Mail schaute Zeile in html, manchmal. Perfecto. Vielen Dank für Blick auf die Frage in einem anderen Licht
Dies könnte für die tatsächliche Zeilenumbrüche, aber was ist, wenn ich "\n"s wie in der Frage? Kann ich dies lösen, indem Sie CSS auch?
Statt
white-space: pre-wrap;
ich lieber verwendenwhite-space: pre-line;
(nicht fügen Sie eine endgültige Zeilenumbruch nach alle)sieht gut aus, aber was ist mit einem riesigen Raum vor der ersten Zeile? komisch
InformationsquelleAutor bersling
Ohne regex:
hmm? Ich habe es gerade ausprobiert und
\\n
passt nicht auf eine neue Zeile, denn es suchtbackslash
+n
.Ich machte einen test-Fall. RegEx ist etwas schneller, aber Lesen Sie selbst jsperf.com/split-join-vs-replace-regex
danke, das ist interessant!
Ich fand diese Antwort funktionierte nicht, es sei denn, der Schrägstrich entgangen war. Zum Beispiel: str = str.split("\n").join("<br />");
InformationsquelleAutor paulslater19
Dies funktioniert für die Eingabe aus textarea
Dies ist die beste Antwort für diese Frage. Aber ich will nur mit <br> nicht <br />. Sehe das nicht ein stackoverflow.com/questions/1946426/html-5-is-it-br-br-or-br
InformationsquelleAutor WSkinner
Wenn die akzeptierte Antwort ist nicht richtig für Sie, dann werden Sie vielleicht versuchen.
Es funktionierte für mich.
new RegExp('\n', 'g')
ist identisch mit/\n/g
(mit Ausnahme einiger Kleinigkeiten, über die Verwendung von primitiven Literale im Vergleich zu Ihren Konstruktoren).was auch immer der Grund, das funktionierte für mich, aber die Antwort nicht akzeptiert
Ah, hier... aber mein Fehler war, versuchen, um anzugeben
/\n/g
als string!InformationsquelleAutor Jethro Larson
Unabhängig vom system:
InformationsquelleAutor Michele Ongaro
Es ist auch wichtig zu codieren, der rest des Textes, um Schutz vor möglichen script-injection-Angriffe
InformationsquelleAutor Dmitry Dzygin
Dieser arbeitete für mich, wenn der Wert kam aus einer TextBox:
InformationsquelleAutor Dr. Aaron Dishno
Für diejenigen von Euch, die wollen nur max. 2
<br>
in einer Reihe, können Sie dieses verwenden:Erste Zeile: Suche für
\n
ODER\r\n
denen mindestens 2 von Ihnen in einer Zeile, z.B.\n\n\n\n
. Dann ersetzen Sie es mit 2br
Zweite Zeile: Suche für alle Einzel -
\r\n
oder\n
und ersetzen Sie Sie mit<br>
InformationsquelleAutor Max
wenn Sie senden Sie die variable aus PHP, können Sie ihn mit dieser vor dem senden:
InformationsquelleAutor Luca C.
str = str.replace(/\n/g, '<br>')
str = str.replace(/\n*\n/g, '<br>')
str = str.replace(/\n+/g, '<br>')
für den zweiten FallInformationsquelleAutor Ritu Gupta