726 Stimmen

Wie kann ich alle Zeilenumbrüche in einer Zeichenkette durch <br />-Elemente ersetzen?

Wie kann ich den Zeilenumbruch aus einem Wert mit JavaScript auslesen und alle Zeilenumbrüche durch <br /> Elemente?

Ejemplo:

Eine Variable, die von PHP wie folgt übergeben wird:

  "This is man.

     Man like dog.
     Man like to drink.

     Man is the king."

Ich möchte, dass mein Ergebnis nach der Konvertierung durch JavaScript etwa so aussieht:

  "This is man<br /><br />Man like dog.<br />Man like to drink.<br /><br />Man is the king."

11voto

Afanasii Kurakin Punkte 3052

Kürzester Code zur Unterstützung der häufigsten EOL-Stile \r , \n , \r\n und die Verwendung von HTML5 <br> :

s.replace(/\r?\n|\r/g, '<br>')

8voto

Dmitry Dzygin Punkte 1203

Es ist auch wichtig, den Rest des Textes zu kodieren, um sich vor möglichen Skriptinjektionsangriffen zu schützen

function insertTextWithLineBreaks(text, targetElement) {
    var textWithNormalizedLineBreaks = text.replace('\r\n', '\n');
    var textParts = textWithNormalizedLineBreaks.split('\n');

    for (var i = 0; i < textParts.length; i++) {
        targetElement.appendChild(document.createTextNode(textParts[i]));
        if (i < textParts.length - 1) {
            targetElement.appendChild(document.createElement('br'));
        }
    }
}

8voto

Michele Ongaro Punkte 91

Unabhängig vom System:

my_multiline_text.replace(/$/mg,'<br>');

6voto

Dr. Aaron Dishno Punkte 1699

Dies funktionierte bei mir, wenn der Wert aus einer TextBox kam:

string.replace(/\n|\r\n|\r/g, '<br/>');

3voto

maxeh Punkte 1123

Für diejenigen unter Ihnen, die nur max. 2 <br> in einer Reihe, können Sie dies verwenden:

let text = text.replace(/(\r?\n){2,}/g, '<br><br>');
text = text.replace(/(\r?\n)/g, '<br>');

Erste Zeile: Suche nach \n OU \r\n wenn mindestens 2 von ihnen in einer Reihe stehen, z. B. \n\n\n\n . Dann ersetzen Sie sie durch 2 br

Zweite Zeile: Suche nach allen einzelnen \r\n o \n und ersetzen sie durch <br>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X