Javascriptを使って、改行をbrタグとpタグ(段落分け)に変換するツールを作成しました。
テキストファイルからHTMLファイルを作成するときに役立つかも?
基本的には正規表現を使えば簡単ですが、改行の変換に\nと\rの両方の変換が必要な点は注意すべきかもしれません。
ソースは次の通りです。
実際には、フォームからのデータ受け取りなどの処理もちょこっとだけあるのですが、今回は本質のみ抜き出します。
//文字列texの改行をbrタグおよびpタグへ変換
//最初にpタグを付加
tex = “<p>\n” + tex;
// \nだけでなく、\rも変換するのがポイント。
// 改行はブラウザによって、\r\nだったり、\nだけだったりするので、
// まず最初に\r\nを変換して、その後\nを変換する
tex = tex.replace(/\r\n/g, “<br />”);
tex = tex.replace(/(\n|\r)/g, “<br />”);
// 2個以上連続する<br />をpタグに変換。
// ただし、”\n”+p+”\n”の”p”は最初に定義した変数です。
tex = tex.replace(/(<br \/>){2,}/g, “\n”+p+”\n”);
tex = tex.replace(/<br \/>/g, “<br />\n”);
// 最後にもpタグを付加
tex += “</p>”;
// たまに 〜</p><p></p> と何もない段落が出来てしまう場合があるのでそれを削除
tex = tex.replace(/<p>(\r\n|\n|\r}\b)*<\/p>/g, “”);
// pタグの直後にbrタグが来る場合を修正
tex = tex.replace(/<p>(\r\n|\n|\r}\b)*<br \/>/g, “<p>”);
実際の動作については、こちらを参照してください。
≫改行をbrタグとpタグに変換するツール