Es scheint, dass gemäß der HTML5-Spezifikation die value-Eigenschaft des textarea-Elements '\ r \ n' für eine neue Zeile zurückgeben sollte:
Der Wert des Elements wird als Rohwert des Elements definiert, wobei die folgende Transformation angewendet wird:
Ersetzen Sie jedes Vorkommen eines "CR" -Zeichens (U + 000D), dem kein "LF" -Zeichen (U + 000A) folgt, und jedes Vorkommen eines "LF" -Zeichens (U + 000A), dem kein "CR" -Zeichen (U + 000A) vorangestellt ist ( U + 000D) -Zeichen durch eine zweistellige Zeichenfolge, die aus einem U + 000D CARRIAGE RETURN-Zeichenpaar "CRLF" (U + 000A) besteht.
Wenn Sie dem Link zu 'Wert' folgen, wird deutlich, dass er sich auf die Werteigenschaft bezieht, auf die in Javascript zugegriffen wird:
Formularsteuerelemente haben einen Wert und eine Überprüfbarkeit. (Letzteres wird nur von Eingabeelementen verwendet.) Diese beschreiben, wie der Benutzer mit dem Steuerelement interagiert.
Wenn jedoch in allen fünf Hauptbrowsern (unter Windows, 27.11.2015) '\ r \ n' in einen Textbereich geschrieben wird, wird das '\ r' entfernt. (Zum Testen: var e = document.createElement ('textarea'); e.value = '\ r \ n'; alert (e.value == '\ n');) Dies gilt für IE seit v9. Zuvor gab IE '\ r \ n' zurück und konvertierte sowohl '\ r' als auch '\ n' in '\ r \ n' (dies ist die HTML5-Spezifikation). Also ... ich bin verwirrt.
Um sicher zu gehen, reicht es normalerweise aus, '\ r? \ N' in regulären Ausdrücken anstelle von '\ n' zu verwenden. Wenn jedoch die Zeilenumbruchsequenz bekannt sein muss, kann ein Test wie der oben in der App durchgeführt werden.