JavaScript: 改行をすべて削除する
改行コード(\r\nまたは\n)をすべて削除するには次のように記述します。
str = str.replace(/\r?\n/g, '');
次のように\r\nと\nを別々に2行で記述しても結果は同じです。
str = str.replace(/\r\n/g, '');
str = str.replace(/\n/g, '');
どちらでも得られる結果は同じですが、1行で記述した方がシンプルで良いかと思います。
?はメタ文字
「\r?\n」にある「?」は、正規表現でメタ文字と呼ばれる特殊文字です。 ?の直前の文字(この場合は\r)を0回または1回繰り返す、という意味です。
ですから「\r?\n」は「\nまたは\r\n」と同じ意味です。
今回のケースのように、基本的なメタ文字だけでも知っていると、コードをシンプルに記述できる場合が 多くあります。
「g」で全てを置換
/\r?\n/の後に「g」が付いています。 これはグローバルマッチと言って、一致したものを全て置換するためにはこの「g」が必要です。
もし「g」がなければ最初に一致した所で処理が終了してしまいます。 全てを置換したい場合は「g」を付けてください。