14

改行に基づいてテキストにpタグとbrタグを追加するテキストフォーマッターを作成しようとしています。私は現在これを持っています:

s.replace(/\n\n/g, "\n</p><p>\n");

これは、段落の終わりと始まりを作成するのに最適です。ただし、インスタンスを見つけようとして
もうまく機能しません。一致したグループの置換を試みても、括弧が無視され、正規表現の一致全体が置換されるため、機能しません。

s.replace(/\w(\n)\w/g, "<br />\n");

gオプションを削除してみました(まだ一致全体を置き換えましたが、最初の一致のみ)。これを行う別の方法はありますか?

ありがとう!

4

2 に答える 2

22

交換したくない部品をキャプチャして$、グループ番号が後に続く交換文字列に含めることができます。

s.replace(/(\w)\n(\w)/g, "$1<br />\n$2");

置換文字列で入力文字列の一部を参照する方法の詳細については、MDNドキュメントのこのセクションを参照してください。

于 2012-06-12T22:55:21.820 に答える
3

周囲のキャラクターもキャッチします:

s.replace(/(\w)(\n\w)/g, "$1<br />$2");
于 2012-06-12T22:56:24.553 に答える