9

javascriptを使用して、テキストの改行を見つけて置き換えようとしています。

以下の作品。文字 a を文字 z に置き換えます。

var text = "aasdfasdf";
text= text.replace(/a/g,"z");
alert(text);

この掲示板や他の掲示板の他の投稿に基づいた以下のことはありません。基本的にJavaScriptは起動しません:

var text = "aasdfasdf";
text= text.replace(/\n/g,"z");
alert(text);

...これは、動作するはずであることを示唆する多くの投稿の 1 つです。

JavaScript: HTML テキストエリアに改行を追加するには?

ちなみに、Firefoxでも次のことは機能しません。

text = text.replace(/\n\r?/g, '<br />'); or
text = text.replace("\n", '<br />'); 

注: text 変数に改行がないことを認識しています。テスト目的で単純な文字列を使用しているだけです。

何が間違っているのか、実際に機能する方法を教えてください。

ありがとう。

4

4 に答える 4

14

\r\n次のように、 (シーケンス)を処理\r\nてから、文字クラスを処理して、賭けをカバーします。

text = text.replace(/\r\n/g, '<br />').replace(/[\r\n]/g, '<br />');

最初の置換により、シーケンスが に変わり\r\nます<br />。2 番目の置換は、単独で見つかった文字\rまたは文字を文字列に置き換えます。\n

JavaScript の正規表現の詳細については、こちらを参照してください。

于 2012-11-23T16:30:19.407 に答える
2

Windowsの改行文字を処理するには、試してください

text = text.replace(/\r\n/g, '<br />').replace(/[\r\n]/g, '<br />');
于 2012-11-23T16:41:30.757 に答える
1

両方のタイプの改行に対する別の解決策

str.replace(new RegExp('\r?\n','g'), '<br />');
于 2013-11-21T19:17:07.813 に答える
1

ECMAScript は文字列の改行を "\n\r" に正規化し、DOM は文字列の改行を "\n" に正規化します。これらのフォーマットに依存しないこれらの OS の両方:

  • Windows - CRLF
  • Unix-LF
  • 古いマック - CR

このタスクを実行する正しい方法は、文字列を受け取る方法と書き出す方法によって異なります。

于 2012-11-23T16:51:42.030 に答える