
Flügelklinge
Ich habe einen Text in einer Textarea und lese ihn mit dem Attribut .value aus.
Jetzt möchte ich alle Zeilenumbrüche entfernen (das Zeichen, das erzeugt wird, wenn Sie drücken Eingeben) aus meinem Text jetzt mit .replace durch einen regulären Ausdruck, aber wie gebe ich einen Zeilenumbruch in einer Regex an?
Wenn das nicht möglich ist, gibt es eine andere Möglichkeit?

Eremit
Wie Sie einen Zeilenumbruch finden, variiert je nach Betriebssystemcodierung. Windows wäre \r\n
aber Linux verwendet nur \n
und Apple verwendet \r
.
Ich habe das in gefunden JavaScript-Zeilenumbrüche:
someText = someText.replace(/(\r\n|\n|\r)/gm, "");
Das sollte alle Arten von Zeilenumbrüchen entfernen.

Spitze Ohren
Zeilenumbrüche (besser: Zeilenumbrüche) können Carriage Return (CR, \r
auf älteren Macs), Zeilenvorschub (LF, \n
, auf Unices inkl. Linux) oder CR gefolgt von LF (\r\n
, unter WinDOS). (Im Gegensatz zu einer anderen Antwort hat dies nichts mit Zeichenkodierung zu tun.)
Daher am effizientesten RegExp
wörtlich passend für alle Varianten ist
/\r?\n|\r/
Wenn Sie alle Zeilenumbrüche in einer Zeichenfolge abgleichen möchten, verwenden Sie eine globale Übereinstimmung,
/\r?\n|\r/g
bzw. Fahren Sie dann mit fort replace
Methode, wie in mehreren anderen Antworten vorgeschlagen. (Wahrscheinlich tun Sie das nicht möchten die Zeilenumbrüche entfernen, aber durch andere Leerzeichen ersetzen, zum Beispiel das Leerzeichen, damit die Wörter intakt bleiben.)

RobW
var str = " \n this is a string \n \n \n"
console.log(str);
console.log(str.trim());
String.trim()
Entfernt Leerzeichen am Anfang und Ende von Zeichenfolgen … einschließlich Zeilenumbrüchen.
const myString = " \n \n\n Hey! \n I'm a string!!! \n\n";
const trimmedString = myString.trim();
console.log(trimmedString);
// outputs: "Hey! \n I'm a string!!!"
Hier ist eine Beispielgeige: http://jsfiddle.net/BLs8u/
HINWEIS! Es schneidet nur den Anfang und das Ende der Zeichenfolge ab, keine Zeilenumbrüche oder Leerzeichen in der Mitte der Zeichenfolge.

Kendall Frey
Sie können verwenden \n
in einer Regex für Zeilenumbrüche und \r
für Rücksendungen.
var str2 = str.replace(/\n|\r/g, "");
Verschiedene Betriebssysteme verwenden unterschiedliche Zeilenenden mit unterschiedlichen Mischungen von \n
und \r
. Diese Regex wird sie alle ersetzen.

Freezystem
Die einfachste Lösung wäre:
let str="\t\n\r this \n \t \r is \r a \n test \t \r \n";
str = str.replace(/\s+/g, ' ').trim();
console.log(str); // logs: "this is a test"
.replace()
mit /\s+/g
Regexp ändert sich alle Gruppen von Leerzeichen zu einem einzigen Leerzeichen in der gesamten Zeichenfolge, dann wir .trim()
das Ergebnis, um alle überzähligen Leerzeichen vor und nach dem Text zu entfernen.
Als Leerzeichen gelten:
[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

Omni
Wenn Sie alle Steuerzeichen entfernen möchten, einschließlich CR und LF, können Sie Folgendes verwenden:
myString.replace(/[^\x20-\x7E]/gmi, "")
Es entfernt alle nicht druckbaren Zeichen. Dies sind alle Charaktere NICHT innerhalb des ASCII-HEX-Raums 0x20-0x7E
. Fühlen Sie sich frei, den HEX-Bereich nach Bedarf zu ändern.

Gordon Freeman
var str = "bar\r\nbaz\nfoo";
str.replace(/[\r\n]/g, '');
>> "barbazfoo"
9166800cookie-checkSo entfernen Sie alle Zeilenumbrüche aus einer Zeichenfolgeyes
Mögliches Duplikat von Wie ersetze ich alle Zeilenumbrüche in einer Zeichenfolge durch
-Tags?
– Jun711
26. Oktober 2018 um 0:32 Uhr