HTML5 仕様によると、textarea 要素の value プロパティは、改行に対して '\r\n' を返す必要があるようです。
要素の値は、次の変換が適用された要素の生の値として定義されます。
「LF」(U+000A) 文字が続かない「CR」(U+000D) 文字のすべての出現、および「CR」が先行しない「LF」(U+000A) 文字のすべての出現 ( U+000D) 文字、U+000D CARRIAGE RETURN "CRLF" (U+000A) 文字ペアで構成される 2 文字の文字列。
'value' へのリンクをたどると、javascript でアクセスされる value プロパティを参照していることがわかります。
フォーム コントロールには、値とチェック状態があります。(後者は入力要素でのみ使用されます。) これらは、ユーザーがコントロールと対話する方法を記述するために使用されます。
ただし、5 つの主要なブラウザすべて (Windows を使用、2015 年 11 月 27 日) では、'\r\n' がテキストエリアに書き込まれると、'\r' が取り除かれます。(テストするには: var e=document.createElement('textarea'); e.value='\r\n'; alert(e.value=='\n');) これは v9 以降の IE に当てはまります。それ以前は、IE は '\r\n' を返し、'\r' と '\n' の両方を '\r\n' に変換していました (これは HTML5 仕様です)。だから...私は混乱しています。
安全のために、通常は正規表現で「\n」の代わりに「\r?\n」を使用するだけで十分ですが、改行シーケンスを知る必要がある場合は、上記のようなテストをアプリで実行できます。